{"id":2551,"date":"2018-11-08T03:34:17","date_gmt":"2018-11-07T18:34:17","guid":{"rendered":"http:\/\/okamurax.com\/?p=2551"},"modified":"2018-11-08T04:42:02","modified_gmt":"2018-11-07T19:42:02","slug":"c-mysql%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%9f%e5%9f%ba%e6%9c%ac%e6%a9%9f%e8%83%bd","status":"publish","type":"post","link":"https:\/\/appbay.org\/?p=2551","title":{"rendered":"C# MySQL\u3092\u5229\u7528\u3059\u308b\u30b5\u30f3\u30d7\u30eb"},"content":{"rendered":"<p>MySQL\u304b\u3089\u30c7\u30fc\u30bf\u3092\u6301\u3063\u3066\u304d\u3066\u30c7\u30fc\u30bf\u30b0\u30ea\u30c3\u30c9\u30d3\u30e5\u30fc\u306b\u5165\u308c\u3066\u691c\u7d22\u306e\u3068\u3053\u308d\u307e\u3067\u66f8\u3044\u305f\u72b6\u614b\u3002\u696d\u52d9\u306b\u95a2\u308f\u308b\u90e8\u5206\u306f\u554f\u984c\u306a\u3044\u3088\u3046\u306b\u5909\u66f4\u3057\u3066\u3042\u308b\u3002<\/p>\n<p>Db.cs<\/p>\n<pre class=\"lang:c# decode:true\">using System;\r\nusing System.Data;\r\nusing System.Windows.Forms;\r\nusing MySql.Data.MySqlClient;\r\n\r\nnamespace ProductionManagement\r\n{\r\n    class Db\r\n    {\r\n        private string ConnectionString = \"server=xxx; ssl mode=none; port=xxx; user=xxx; password=xxx; database=xxx\";\r\n\r\n        public DataTable ExecuteQuery(string query)\r\n        {\r\n            using (MySqlConnection con = new MySqlConnection(ConnectionString))\r\n            {\r\n                try\r\n                {\r\n                    con.Open();\r\n                    MySqlCommand mySqlCommand = new MySqlCommand(query, con);\r\n                    using (MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader())\r\n                    {\r\n                        DataTable dt = new DataTable();\r\n                        dt.Load(mySqlDataReader);\r\n                        return dt;\r\n                    }\r\n                        \r\n                }\r\n                catch (Exception e)\r\n                {\r\n                    MessageBox.Show(e.Message);\r\n                    return new DataTable();\r\n                }\r\n            }\r\n        }\r\n\r\n        public void ExecuteNonQuery(string query)\r\n        {\r\n            using (MySqlConnection con = new MySqlConnection(ConnectionString))\r\n            {\r\n                try\r\n                {\r\n                    con.Open();\r\n                    MySqlCommand mySqlCommand = new MySqlCommand(query, con);\r\n                    mySqlCommand.ExecuteNonQuery();\r\n                }\r\n                catch (Exception e)\r\n                {\r\n                    MessageBox.Show(e.Message);\r\n                }\r\n            }\r\n        }\r\n\r\n    }\r\n}\r\n<\/pre>\n<p>OrderColumnInfo.cs<\/p>\n<pre class=\"lang:c# decode:true\">using System.Collections.Generic;\r\n\r\nnamespace ProductionManagement\r\n{\r\n    enum SelectType { None, Target }\r\n    enum UpdateType { None, Target }\r\n    enum SearchType { None, TargetNormal, TargetTerm }\r\n\r\n    class OrderColumnInfo\r\n    {\r\n        public string ColumnName;\r\n        public SelectType SelectTarget;\r\n        public UpdateType UpdateTarget;\r\n        public SearchType SearchTarget;\r\n        \r\n        public static List&lt;OrderColumnInfo&gt; CreateColumnInfoList()\r\n        {\r\n            List&lt;OrderColumnInfo&gt; listColumnInfo = new List&lt;OrderColumnInfo&gt;();\r\n\r\n            listColumnInfo.Add(new OrderColumnInfo()\r\n            {\r\n                ColumnName = \"\u53d7\u6ce8ID\",\r\n                SelectTarget = SelectType.Target,\r\n                UpdateTarget = UpdateType.None,\r\n                SearchTarget = SearchType.None\r\n            });\r\n\r\n            listColumnInfo.Add(new OrderColumnInfo()\r\n            {\r\n                ColumnName = \"\u578b\u5f0fCD\",\r\n                SelectTarget = SelectType.Target,\r\n                UpdateTarget = UpdateType.Target,\r\n                SearchTarget = SearchType.None\r\n            });\r\n\r\n            listColumnInfo.Add(new OrderColumnInfo()\r\n            {\r\n                ColumnName = \"\u578b\u5f0f\",\r\n                SelectTarget = SelectType.Target,\r\n                UpdateTarget = UpdateType.Target,\r\n                SearchTarget = SearchType.TargetNormal\r\n            });\r\n\r\n            listColumnInfo.Add(new OrderColumnInfo()\r\n            {\r\n                ColumnName = \"\u5f97\u610f\u5148CD\",\r\n                SelectTarget = SelectType.Target,\r\n                UpdateTarget = UpdateType.Target,\r\n                SearchTarget = SearchType.None\r\n            });\r\n\r\n            listColumnInfo.Add(new OrderColumnInfo()\r\n            {\r\n                ColumnName = \"\u5f97\u610f\u5148\",\r\n                SelectTarget = SelectType.Target,\r\n                UpdateTarget = UpdateType.Target,\r\n                SearchTarget = SearchType.TargetNormal\r\n            });\r\n\r\n            listColumnInfo.Add(new OrderColumnInfo()\r\n            {\r\n                ColumnName = \"\u5de5\u756a\",\r\n                SelectTarget = SelectType.Target,\r\n                UpdateTarget = UpdateType.Target,\r\n                SearchTarget = SearchType.TargetNormal\r\n            });\r\n\r\n            listColumnInfo.Add(new OrderColumnInfo()\r\n            {\r\n                ColumnName = \"\u5185\u5916\u4f5c\",\r\n                SelectTarget = SelectType.Target,\r\n                UpdateTarget = UpdateType.Target,\r\n                SearchTarget = SearchType.TargetNormal\r\n            });\r\n\r\n            listColumnInfo.Add(new OrderColumnInfo()\r\n            {\r\n                ColumnName = \"\u4f1d\u7968\u7d0d\u671f\",\r\n                SelectTarget = SelectType.Target,\r\n                UpdateTarget = UpdateType.Target,\r\n                SearchTarget = SearchType.TargetTerm\r\n            });\r\n\r\n            listColumnInfo.Add(new OrderColumnInfo()\r\n            {\r\n                ColumnName = \"\u53d7\u6ce8\u6570\u91cf\",\r\n                SelectTarget = SelectType.Target,\r\n                UpdateTarget = UpdateType.Target,\r\n                SearchTarget = SearchType.None\r\n            });\r\n\r\n            listColumnInfo.Add(new OrderColumnInfo()\r\n            {\r\n                ColumnName = \"\u4f1d\u7968\u91d1\u984d\",\r\n                SelectTarget = SelectType.Target,\r\n                UpdateTarget = UpdateType.Target,\r\n                SearchTarget = SearchType.None\r\n            });\r\n\r\n            listColumnInfo.Add(new OrderColumnInfo()\r\n            {\r\n                ColumnName = \"\u5408\u8a08\u91d1\u984d\",\r\n                SelectTarget = SelectType.None,\r\n                UpdateTarget = UpdateType.None,\r\n                SearchTarget = SearchType.None\r\n            });\r\n\r\n            listColumnInfo.Add(new OrderColumnInfo()\r\n            {\r\n                ColumnName = \"\u672c\u793e\u5099\u8003\",\r\n                SelectTarget = SelectType.Target,\r\n                UpdateTarget = UpdateType.Target,\r\n                SearchTarget = SearchType.TargetNormal\r\n            });\r\n\r\n            listColumnInfo.Add(new OrderColumnInfo()\r\n            {\r\n                ColumnName = \"\u7ba1\u7406\u5099\u8003\",\r\n                SelectTarget = SelectType.Target,\r\n                UpdateTarget = UpdateType.Target,\r\n                SearchTarget = SearchType.TargetNormal\r\n            });\r\n\r\n            listColumnInfo.Add(new OrderColumnInfo()\r\n            {\r\n                ColumnName = \"\u767b\u9332\u65e5\",\r\n                SelectTarget = SelectType.Target,\r\n                UpdateTarget = UpdateType.Target,\r\n                SearchTarget = SearchType.TargetTerm\r\n            });\r\n            return listColumnInfo;\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>OrderListForm.cs<\/p>\n<pre class=\"lang:c# decode:true\">using System.Drawing;\r\nusing System.Windows.Forms;\r\n\r\nnamespace ProductionManagement\r\n{\r\n    public partial class OrderListForm : Form\r\n    {\r\n        private OrderService orderService = new OrderService();\r\n\r\n        public OrderListForm()\r\n        {\r\n            InitializeComponent();\r\n\r\n            DataGridViewProperty();\r\n            DataGridView.DataSource = orderService.DataTableToModelList();\r\n\r\n            DataGridViewEvent();\r\n            ButtonEvent();\r\n            TextBoxEvent();\r\n        }\r\n\r\n        public string BeforeChangeValue { set; get; }\r\n\r\n        private void DataGridViewEvent()\r\n        {\r\n            DataGridView.DoubleClick += orderService.CreateModel(this);\r\n\r\n            DataGridView.CellEnter += (sender, e) =&gt;\r\n            {\r\n                BeforeChangeValue = DataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();\r\n            };\r\n\r\n            DataGridView.CellValueChanged += orderService.InsertUpdateFlag(this);\r\n            DataGridView.Columns[\"UpdateFlag\"].Visible = false;\r\n        }\r\n\r\n        private void ButtonEvent()\r\n        {\r\n            SearchButton.Click += orderService.CreateSearchValueList(this);\r\n\r\n            ClearButton.Click += (sender, e) =&gt; {\r\n                foreach (Control c in Controls)\r\n                {\r\n                    if (c.GetType() == typeof(TextBox))\r\n                    {\r\n                        ((TextBox)c).Text = \"\";\r\n                    }\r\n                }\r\n                DataGridView.DataSource = orderService.DataTableToModelList();\r\n            };\r\n\r\n            SaveButton.Click += orderService.CreateUpdateValueList(this);\r\n        }\r\n\r\n        private void TextBoxEvent()\r\n        {\r\n            foreach(Control c in Controls)\r\n            {\r\n                if(c.GetType() == typeof(TextBox))\r\n                {\r\n                    ((TextBox)c).LostFocus += orderService.TextBoxValueParse(this);\r\n\r\n                    ((TextBox)c).KeyDown += (sender, e) =&gt; {\r\n                        if (e.KeyCode == Keys.Enter &amp;&amp; ModifierKeys == Keys.Control)\r\n                        {\r\n                            SearchButton.Focus();\r\n                            SearchButton.PerformClick();\r\n                        }\r\n                    };\r\n                }\r\n            }\r\n        }\r\n\r\n        private void DataGridViewProperty()\r\n        {\r\n            DataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;\r\n            DataGridView.ColumnHeadersDefaultCellStyle.WrapMode = DataGridViewTriState.False;\r\n            DataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;\r\n            DataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;\r\n            DataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;\r\n            DataGridView.Font = new Font(\"\u30e1\u30a4\u30ea\u30aa\", 10);\r\n            DataGridView.RowTemplate.Height = 22;\r\n            DataGridView.AllowUserToAddRows = false;\r\n\r\n            typeof(DataGridView).\r\n                GetProperty(\"DoubleBuffered\", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).\r\n                SetValue(DataGridView, true, null);\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>OrderModel.cs<\/p>\n<pre class=\"lang:c# decode:true\">using System;\r\nnamespace ProductionManagement\r\n{\r\n    class OrderModel\r\n    {\r\n        public bool HasParseError = false;\r\n        public string UpdateFlag { set; get; }\r\n\r\n        private int OrderID;\r\n        public object \u53d7\u6ce8ID\r\n        {\r\n            set\r\n            {\r\n                if (OrderID == 0)\r\n                {\r\n                    OrderID = int.Parse(Convert.ToString(value));\r\n                }\r\n            }\r\n            get\r\n            {\r\n                return OrderID;\r\n            }\r\n        }\r\n\r\n        private int ModelCD;\r\n        public object \u578b\u5f0fCD\r\n        {\r\n            set\r\n            {\r\n                try\r\n                {\r\n                    ModelCD = int.Parse(Convert.ToString(value));\r\n                }\r\n                catch\r\n                {\r\n                    HasParseError = true;\r\n                }\r\n            }\r\n            get\r\n            {\r\n                return ModelCD;\r\n            }\r\n        }\r\n\r\n        private string ModelName;\r\n        public object \u578b\u5f0f\r\n        {\r\n            set { ModelName = Convert.ToString(value); }\r\n            get { return ModelName; }\r\n        }\r\n\r\n        private int CustomerCD;\r\n        public object \u5f97\u610f\u5148CD\r\n        {\r\n            set\r\n            {\r\n                try\r\n                {\r\n                    CustomerCD = int.Parse(Convert.ToString(value));\r\n                }\r\n                catch\r\n                {\r\n                    HasParseError = true;\r\n                }\r\n            }\r\n            get\r\n            {\r\n                return CustomerCD;\r\n            }\r\n        }\r\n\r\n        private string CustomerName;\r\n        public object \u5f97\u610f\u5148\r\n        {\r\n            set { CustomerName = Convert.ToString(value); }\r\n            get { return CustomerName; }\r\n        }\r\n\r\n        private string Serial;\r\n        public object \u5de5\u756a\r\n        {\r\n            set { Serial = Convert.ToString(value); }\r\n            get { return Serial; }\r\n        }\r\n\r\n        private string InOut;\r\n        public object \u5185\u5916\u4f5c\r\n        {\r\n            set\r\n            {\r\n                if (\"\u5185\u4f5c\" == Convert.ToString(value) || \"\u5916\u4f5c\" == Convert.ToString(value))\r\n                {\r\n                    InOut = Convert.ToString(value);\r\n                }\r\n                else\r\n                {\r\n                    HasParseError = true;\r\n                    return;\r\n                }\r\n            }\r\n            get\r\n            {\r\n                return InOut;\r\n            }\r\n        }\r\n\r\n        private DateTime DueDate;\r\n        public object \u4f1d\u7968\u7d0d\u671f\r\n        {\r\n            set\r\n            {\r\n                try\r\n                {\r\n                    DueDate = DateTime.Parse(Convert.ToString(value));\r\n                }\r\n                catch\r\n                {\r\n                    HasParseError = true;\r\n                }\r\n            }\r\n            get\r\n            {\r\n                return DueDate.ToString(\"yyyy-MM-dd\");\r\n            }\r\n        }\r\n\r\n        private int Quantity;\r\n        public object \u53d7\u6ce8\u6570\u91cf\r\n        {\r\n            set\r\n            {\r\n                try\r\n                {\r\n                    Quantity = int.Parse(Convert.ToString(value));\r\n                }\r\n                catch\r\n                {\r\n                    HasParseError = true;\r\n                }\r\n            }\r\n            get { return Quantity; }\r\n        }\r\n\r\n        private decimal UnitPrice;\r\n        public object \u4f1d\u7968\u91d1\u984d\r\n        {\r\n            set\r\n            {\r\n                try\r\n                {\r\n                    UnitPrice = decimal.Parse(Convert.ToString(value));\r\n                }\r\n                catch\r\n                {\r\n                    HasParseError = true;\r\n                }\r\n            }\r\n            get { return UnitPrice; }\r\n        }\r\n\r\n        public object \u5408\u8a08\u91d1\u984d\r\n        {\r\n            get\r\n            {\r\n                return int.Parse(Convert.ToString(\u53d7\u6ce8\u6570\u91cf)) * decimal.Parse(Convert.ToString(\u4f1d\u7968\u91d1\u984d));\r\n            }\r\n        }\r\n\r\n        private string Notice;\r\n        public object \u672c\u793e\u5099\u8003\r\n        {\r\n            set { Notice = Convert.ToString(value); }\r\n            get { return Notice; }\r\n        }\r\n\r\n        private string Remark;\r\n        public object \u7ba1\u7406\u5099\u8003\r\n        {\r\n            set { Remark = Convert.ToString(value); }\r\n            get { return Remark; }\r\n        }\r\n\r\n        private DateTime Registered;\r\n        public object \u767b\u9332\u65e5\r\n        {\r\n            set\r\n            {\r\n                try\r\n                {\r\n                    Registered = DateTime.Parse(Convert.ToString(value));\r\n                }\r\n                catch\r\n                {\r\n                    HasParseError = true;\r\n                }\r\n            }\r\n            get\r\n            {\r\n                return Registered.ToString(\"yyyy-MM-dd\");\r\n            }\r\n        }\r\n    }\r\n\r\n}\r\n<\/pre>\n<p>OrderQuery.cs<\/p>\n<pre class=\"lang:c# decode:true \">using System.Collections.Generic;\r\nusing System.Text.RegularExpressions;\r\n\r\nnamespace ProductionManagement\r\n{\r\n    class OrderQuery\r\n    {\r\n        public string SearchString(List&lt;string&gt; listSearch)\r\n        {\r\n            if (listSearch.Count == 0)\r\n            {\r\n                return SelectString();\r\n            }\r\n            else\r\n            {\r\n                return SelectString() + \" where \" + string.Join(\" and \",listSearch.ToArray());\r\n            }\r\n        }\r\n\r\n        public string SelectString()\r\n        {\r\n            string tableName = \"\u53d7\u6ce8\u30c7\u30fc\u30bf\";\r\n\r\n            string targetColumn = \"\";\r\n\r\n            foreach (OrderColumnInfo orderColumnInfo in OrderColumnInfo.CreateColumnInfoList())\r\n            {\r\n                if (orderColumnInfo.SelectTarget == SelectType.None) continue;\r\n                targetColumn += orderColumnInfo.ColumnName + \",\";\r\n            }\r\n            targetColumn = new Regex(@\",$\").Replace(targetColumn, \"\");\r\n\r\n            return \"select \" + targetColumn + \" from \" + tableName;\r\n        }\r\n\r\n    }\r\n}\r\n<\/pre>\n<p>OrderSchema.cs<\/p>\n<pre class=\"lang:c# decode:true\">using System.Text.RegularExpressions;\r\nusing System.Collections.Generic;\r\n\r\nnamespace ProductionManagement\r\n{\r\n    class OrderSchema\r\n    {\r\n        private string ColumnName;\r\n        private string DataType;\r\n        private string Constraints;\r\n\r\n        public string CreateTableString()\r\n        {\r\n            string tableName = \"\u53d7\u6ce8\u30c7\u30fc\u30bf\";\r\n\r\n            string targetColumn = \"\";\r\n            foreach (OrderSchema schema in new OrderSchema().CreateSchemaList())\r\n            {\r\n                targetColumn += schema.ColumnName + \" \" + schema.DataType + \" \" + schema.Constraints + \",\";\r\n            }\r\n            targetColumn = new Regex(@\",$\").Replace(targetColumn, \"\");\r\n\r\n            return \"drop table if exists \" + tableName + \";\" +\r\n            \"create table \" + tableName + \" (\" + targetColumn + \") default character set sjis\";\r\n        }\r\n\r\n        public List&lt;OrderSchema&gt; CreateSchemaList()\r\n        {\r\n            List&lt;OrderSchema&gt; listSchema = new List&lt;OrderSchema&gt;();\r\n\r\n            listSchema.Add(new OrderSchema()\r\n            {\r\n                ColumnName = \"\u53d7\u6ce8ID\",\r\n                DataType = \"int\",\r\n                Constraints = \"not null primary key auto_increment\"\r\n            });\r\n\r\n            listSchema.Add(new OrderSchema()\r\n            {\r\n                ColumnName = \"\u578b\u5f0fCD\",\r\n                DataType = \"int\",\r\n                Constraints = \"\"\r\n            });\r\n\r\n            listSchema.Add(new OrderSchema()\r\n            {\r\n                ColumnName = \"\u578b\u5f0f\",\r\n                DataType = \"varchar(32)\",\r\n                Constraints = \"\"\r\n            });\r\n\r\n            listSchema.Add(new OrderSchema()\r\n            {\r\n                ColumnName = \"\u5f97\u610f\u5148CD\",\r\n                DataType = \"int\",\r\n                Constraints = \"\"\r\n            });\r\n\r\n            listSchema.Add(new OrderSchema()\r\n            {\r\n                ColumnName = \"\u5f97\u610f\u5148\",\r\n                DataType = \"varchar(32)\",\r\n                Constraints = \"\"\r\n            });\r\n\r\n            listSchema.Add(new OrderSchema()\r\n            {\r\n                ColumnName = \"\u5de5\u756a\",\r\n                DataType = \"varchar(32)\",\r\n                Constraints = \"\"\r\n            });\r\n\r\n            listSchema.Add(new OrderSchema()\r\n            {\r\n                ColumnName = \"\u5185\u5916\u4f5c\",\r\n                DataType = \"enum('\u5185\u4f5c','\u5916\u4f5c')\",\r\n                Constraints = \"\"\r\n            });\r\n\r\n            listSchema.Add(new OrderSchema()\r\n            {\r\n                ColumnName = \"\u4f1d\u7968\u7d0d\u671f\",\r\n                DataType = \"date\",\r\n                Constraints = \"\"\r\n            });\r\n\r\n            listSchema.Add(new OrderSchema()\r\n            {\r\n                ColumnName = \"\u53d7\u6ce8\u6570\u91cf\",\r\n                DataType = \"int\",\r\n                Constraints = \"\"\r\n            });\r\n\r\n            listSchema.Add(new OrderSchema()\r\n            {\r\n                ColumnName = \"\u4f1d\u7968\u91d1\u984d\",\r\n                DataType = \"decimal\",\r\n                Constraints = \"\"\r\n            });\r\n\r\n            listSchema.Add(new OrderSchema()\r\n            {\r\n                ColumnName = \"\u672c\u793e\u5099\u8003\",\r\n                DataType = \"varchar(255)\",\r\n                Constraints = \"\"\r\n            });\r\n\r\n            listSchema.Add(new OrderSchema()\r\n            {\r\n                ColumnName = \"\u7ba1\u7406\u5099\u8003\",\r\n                DataType = \"varchar(255)\",\r\n                Constraints = \"\"\r\n            });\r\n\r\n            listSchema.Add(new OrderSchema()\r\n            {\r\n                ColumnName = \"\u767b\u9332\u65e5\",\r\n                DataType = \"date\",\r\n                Constraints = \"\"\r\n            });\r\n            return listSchema;\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>OrderService.cs<\/p>\n<pre class=\"lang:c# decode:true\">using System;\r\nusing System.Collections.Generic;\r\nusing System.Windows.Forms;\r\nusing System.Data;\r\nusing System.Reflection;\r\nusing System.Drawing;\r\n\r\nnamespace ProductionManagement\r\n{\r\n    class OrderService\r\n    {\r\n        public EventHandler TextBoxValueParse(OrderListForm f)\r\n        {\r\n            return (sender, e) =&gt;\r\n            {\r\n                TextBox target = (TextBox)sender;\r\n\r\n                foreach (MemberInfo memberInfo in typeof(OrderModel).GetMembers())\r\n                {\r\n                    if (target.Name == memberInfo.Name || target.Name.Replace(\"_\",\"\") == memberInfo.Name)\r\n                    {\r\n                        OrderModel OrderModel = new OrderModel();\r\n                        \r\n                        PropertyInfo p = typeof(OrderModel).GetProperty(memberInfo.Name);\r\n                        p.SetValue(OrderModel, target.Text);\r\n\r\n                        if (OrderModel.HasParseError)\r\n                        {\r\n                            target.Text = \"\";\r\n                        }\r\n                        else\r\n                        {\r\n                            target.Text = p.GetValue(OrderModel).ToString();\r\n                        }\r\n                    }\r\n                }\r\n            };\r\n        }\r\n\r\n        public DataGridViewCellEventHandler InsertUpdateFlag(OrderListForm f)\r\n        {\r\n            return (sender, e) =&gt;\r\n            {\r\n                DataGridViewRow targetRow = ((DataGridView)sender).Rows[e.RowIndex];\r\n                string targetValue = targetRow.Cells[e.ColumnIndex].Value.ToString();\r\n\r\n                if (targetValue == f.BeforeChangeValue) return;\r\n\r\n                targetRow.Cells[\"UpdateFlag\"].Value = \"1\";\r\n                targetRow.DefaultCellStyle.ForeColor = Color.Blue;\r\n            };\r\n        }\r\n\r\n        public EventHandler CreateUpdateValueList(OrderListForm f)\r\n        {\r\n            return (sender, e) =&gt;\r\n            {\r\n\r\n            };\r\n        }\r\n\r\n        public EventHandler CreateSearchValueList(OrderListForm f)\r\n        {\r\n            return (sender, e) =&gt;\r\n            {\r\n                List&lt;string&gt; listSearch = new List&lt;string&gt;();\r\n\r\n                foreach (OrderColumnInfo columnInfo in OrderColumnInfo.CreateColumnInfoList())\r\n                {\r\n                    if (columnInfo.SearchTarget == SearchType.None) continue;\r\n\r\n                    if(columnInfo.SearchTarget == SearchType.TargetNormal)\r\n                    {\r\n                        string targetString = f.Controls[columnInfo.ColumnName].Text;\r\n                        if (targetString != \"\")\r\n                        {\r\n                            listSearch.Add(columnInfo.ColumnName + \" like '%\" + targetString + \"%'\");\r\n                        }\r\n                    }\r\n\r\n                    if (columnInfo.SearchTarget == SearchType.TargetTerm)\r\n                    {\r\n                        string targetStringFrom = f.Controls[columnInfo.ColumnName].Text;\r\n                        string targetStringTo = f.Controls[\"_\" + columnInfo.ColumnName].Text;\r\n\r\n                        if (targetStringFrom != \"\" &amp;&amp; targetStringTo != \"\")\r\n                        {\r\n                            listSearch.Add(\"(\" + \r\n                                columnInfo.ColumnName + \" &gt;= '\" + targetStringFrom + \"' and \" +\r\n                                columnInfo.ColumnName + \" &lt;= '\" + targetStringTo + \"')\");\r\n                        }\r\n\r\n                        if (targetStringFrom != \"\" &amp;&amp; targetStringTo == \"\")\r\n                        {\r\n                            listSearch.Add(\"(\" + \r\n                                columnInfo.ColumnName + \" &gt;= '\" + targetStringFrom + \"' or \" + \r\n                                columnInfo.ColumnName + \" is null)\");\r\n                        }\r\n\r\n                        if (targetStringFrom == \"\" &amp;&amp; targetStringTo != \"\")\r\n                        {\r\n                            listSearch.Add(\"(\" + \r\n                                columnInfo.ColumnName + \" &lt;= '\" + targetStringTo + \"' or \" + \r\n                                columnInfo.ColumnName + \" is null)\");\r\n                        }\r\n\r\n                    }\r\n                }\r\n                ((DataGridView)f.Controls[\"DataGridView\"]).DataSource = DataTableToModelList(new OrderQuery().SearchString(listSearch));\r\n            };\r\n        }\r\n\r\n        public EventHandler CreateModel(OrderListForm f)\r\n        {\r\n            return (sender, e) =&gt;\r\n            {\r\n                OrderModel orderModel = new OrderModel()\r\n                {\r\n                    \/\/todo \u4ef6\u65700\u306e\u3068\u304d\u306e\u30a8\u30e9\u30fc\u51e6\u7406\r\n                    \u53d7\u6ce8ID = ((DataGridView)sender).SelectedRows[0].Cells[\"\u53d7\u6ce8ID\"].Value\r\n                };\r\n                MessageBox.Show(orderModel.\u53d7\u6ce8ID.ToString());\r\n            };\r\n        }\r\n\r\n        public List&lt;OrderModel&gt; DataTableToModelList(string sql = \"\")\r\n        {\r\n            if (sql == \"\") sql = new OrderQuery().SelectString();\r\n            System.Diagnostics.Debug.Print(sql);\r\n\r\n            List&lt;OrderModel&gt; listOrderModel = new List&lt;OrderModel&gt;();\r\n            DataTable dt = new Db().ExecuteQuery(sql);\r\n\r\n            for (int r = 0; r &lt; dt.Rows.Count; r++)\r\n            {\r\n                OrderModel orderModel = new OrderModel()\r\n                {\r\n                    \u53d7\u6ce8ID = dt.Rows[r][\"\u53d7\u6ce8ID\"],\r\n                    \u578b\u5f0fCD = dt.Rows[r][\"\u578b\u5f0fCD\"],\r\n                    \u578b\u5f0f = dt.Rows[r][\"\u578b\u5f0f\"],\r\n                    \u5f97\u610f\u5148CD = dt.Rows[r][\"\u5f97\u610f\u5148CD\"],\r\n                    \u5f97\u610f\u5148 = dt.Rows[r][\"\u5f97\u610f\u5148\"],\r\n                    \u5de5\u756a = dt.Rows[r][\"\u5de5\u756a\"],\r\n                    \u5185\u5916\u4f5c = dt.Rows[r][\"\u5185\u5916\u4f5c\"],\r\n                    \u4f1d\u7968\u7d0d\u671f = dt.Rows[r][\"\u4f1d\u7968\u7d0d\u671f\"],\r\n                    \u53d7\u6ce8\u6570\u91cf = dt.Rows[r][\"\u53d7\u6ce8\u6570\u91cf\"],\r\n                    \u4f1d\u7968\u91d1\u984d = dt.Rows[r][\"\u4f1d\u7968\u91d1\u984d\"],\r\n                    \u672c\u793e\u5099\u8003 = dt.Rows[r][\"\u672c\u793e\u5099\u8003\"],\r\n                    \u7ba1\u7406\u5099\u8003 = dt.Rows[r][\"\u7ba1\u7406\u5099\u8003\"],\r\n                    \u767b\u9332\u65e5 = dt.Rows[r][\"\u767b\u9332\u65e5\"]\r\n                };\r\n                listOrderModel.Add(orderModel);\r\n            }\r\n            return listOrderModel;\r\n        }\r\n    }\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>MySQL\u304b\u3089\u30c7\u30fc\u30bf\u3092\u6301\u3063\u3066\u304d\u3066\u30c7\u30fc\u30bf\u30b0\u30ea\u30c3\u30c9\u30d3\u30e5\u30fc\u306b\u5165\u308c\u3066\u691c\u7d22\u306e\u3068\u3053\u308d\u307e\u3067\u66f8\u3044\u305f\u72b6\u614b\u3002\u696d\u52d9\u306b\u95a2\u308f\u308b\u90e8\u5206\u306f\u554f\u984c\u306a\u3044\u3088\u3046\u306b\u5909\u66f4\u3057\u3066\u3042\u308b\u3002 Db.cs using System; using System.Data; usi &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/appbay.org\/?p=2551\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;C# MySQL\u3092\u5229\u7528\u3059\u308b\u30b5\u30f3\u30d7\u30eb&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[9],"class_list":["post-2551","post","type-post","status-publish","format-standard","hentry","category-1","tag-c-net"],"_links":{"self":[{"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts\/2551","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2551"}],"version-history":[{"count":5,"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts\/2551\/revisions"}],"predecessor-version":[{"id":2556,"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts\/2551\/revisions\/2556"}],"wp:attachment":[{"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2551"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2551"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2551"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}