diff --git a/UserClass/SQLDATA.cs b/UserClass/SQLDATA.cs index e9dc214..6deb357 100644 --- a/UserClass/SQLDATA.cs +++ b/UserClass/SQLDATA.cs @@ -49,7 +49,6 @@ namespace DyeingComputer.UserClass { SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 SQLiteHelpers.Open(); //打开数据库 - DataTable data_t = WorkOrderStep_.Clone(); int a = WorkOrderStep_.Rows.Count; if (a < 1) { @@ -64,12 +63,8 @@ namespace DyeingComputer.UserClass return false; } for (int i = 0; i < a; i++) - { - data_t.Clear();//清空 - DataRow dr = data_t.NewRow(); - dr.ItemArray = WorkOrderStep_.Rows[i].ItemArray; - data_t.Rows.InsertAt(dr, 0); - SQLiteHelpers.InsertData("WorkorderSteps", SQLiteHelpers.DataTableToDictionary(data_t));//行插入 + { + SQLiteHelpers.InsertData("WorkorderSteps", SQLiteHelpers.ToDictionary(WorkOrderStep_.Rows[i]));//行插入 } SQLiteHelpers.Close(); //关闭连接 return true; @@ -86,22 +81,10 @@ namespace DyeingComputer.UserClass MainWindowViewModel.ProgramName = SQLiteHelpers.ExecuteScalar("select ProgramName from Workorder where ProgramID = '" + workName + "'", null).ToString(); SQLiteHelpers.Delete("RUN", null, null); //删除run信息 - DataTable data_t = new DataTable(); - data_t = MainWindowViewModel.dt_TP.Clone(); - data_t.Columns.Add("DYELOT", typeof(string)); //添加列 int a = MainWindowViewModel.dt_TP.Rows.Count; for (int i = 0; i < a; i++) { - data_t.Clear();//清空 - DataRow dt = MainWindowViewModel.dt_TP.Rows[i];//行转 - DataRow dr = data_t.NewRow(); - dr.ItemArray = dt.ItemArray; - dr.BeginEdit(); //添加订单号 - dr["DYELOT"] = MainWindowViewModel.WorkNumder; - dr.EndEdit(); - data_t.Rows.InsertAt(dr, 0); //行转换 - - r = SQLiteHelpers.InsertData("RUN", SQLiteHelpers.DataTableToDictionary(data_t));//行插入 + SQLiteHelpers.InsertData("RUN", SQLiteHelpers.ToDictionary(MainWindowViewModel.dt_TP.Rows[i]));//行插入 } //数据插入 MainWindowViewModel.WorkNumder = SQLiteHelpers.ExecuteDataSet("select WorkOrder from Workorder where ProgramID = '" + workName + "'", null);; @@ -141,7 +124,6 @@ namespace DyeingComputer.UserClass } DyelotTable.Rows.Add(newRow); } - DataTable data_t = DyelotTable.Clone(); int a = DyelotTable.Rows.Count; if (a < 1) return false; string Dyelot = DyelotTable.Rows[0][0].ToString(); @@ -155,11 +137,7 @@ namespace DyeingComputer.UserClass } for (int i = 0; i < a; i++) { - data_t.Clear();//清空 - DataRow dr = data_t.NewRow(); - dr.ItemArray = DyelotTable.Rows[i].ItemArray; - data_t.Rows.InsertAt(dr, 0); - SQLiteHelpers.InsertData("Dyelot", SQLiteHelpers.DataTableToDictionary(data_t));//行插入 + SQLiteHelpers.InsertData("Dyelot", SQLiteHelpers.ToDictionary(DyelotTable.Rows[i]));//行插入 } SQLiteHelpers.Close(); //关闭连接 return true; diff --git a/UserClass/SqliteHelper.cs b/UserClass/SqliteHelper.cs index e057a50..1288f27 100644 --- a/UserClass/SqliteHelper.cs +++ b/UserClass/SqliteHelper.cs @@ -680,6 +680,23 @@ namespace DyeingComputer.UserClass return result; } + /// + /// 将DataRow转换为Dictionary<string, object> + /// + /// DataRow实例 + /// 键为列名、值为对应数据的字典 + public Dictionary ToDictionary(DataRow row) + { + var dictionary = new Dictionary(StringComparer.OrdinalIgnoreCase); + if (row == null) return dictionary; + + foreach (DataColumn column in row.Table.Columns) + { + object value = row[column] == DBNull.Value ? null : row[column]; + dictionary[column.ColumnName] = value; + } + return dictionary; + } } #endregion } diff --git a/View/TechnologicalProcessView.xaml.cs b/View/TechnologicalProcessView.xaml.cs index d6ce33a..3c195bd 100644 --- a/View/TechnologicalProcessView.xaml.cs +++ b/View/TechnologicalProcessView.xaml.cs @@ -384,18 +384,13 @@ namespace DyeingComputer.View SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 SQLiteHelpers.Open(); //打开数据库 SQLiteHelpers.Delete("RUN", null, null); - DataTable data_t = MainWindowViewModel.dt_TP.Clone(); for (int i = 0; i < MainWindowViewModel.dt_TP.Rows.Count; i++) { - data_t.Clear();//清空 DataRow dt = MainWindowViewModel.dt_TP.Rows[i];//行转换 - DataRow drT = data_t.NewRow(); - drT.ItemArray = dt.ItemArray; - data_t.Rows.InsertAt(drT, 0); - drT.BeginEdit(); //添加订单号 - drT["DYELOT"] = MainWindowViewModel.WorkNumder; - drT.EndEdit(); - SQLiteHelpers.InsertData("RUN", SQLiteHelpers.DataTableToDictionary(data_t));//行插入 + dt.BeginEdit(); //添加订单号 + dt["DYELOT"] = MainWindowViewModel.Dyelot; + dt.EndEdit(); + SQLiteHelpers.InsertData("RUN", SQLiteHelpers.ToDictionary(dt));//行插入 } SQLiteHelpers.Close(); //关闭连接 APILog.LOGlog(MainWindowViewModel.WorkNumder.ToString(), "UserActions", "EDIT STEP = " + n, @@ -553,18 +548,13 @@ namespace DyeingComputer.View SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 SQLiteHelpers.Open(); //打开数据库 SQLiteHelpers.Delete("RUN", null, null); - DataTable data_t = MainWindowViewModel.dt_TP.Clone(); for (int i = 0; i < MainWindowViewModel.dt_TP.Rows.Count; i++) { - data_t.Clear();//清空 DataRow dt = MainWindowViewModel.dt_TP.Rows[i];//行转换 - DataRow drT = data_t.NewRow(); - drT.ItemArray = dt.ItemArray; - data_t.Rows.InsertAt(drT, 0); - drT.BeginEdit(); //添加订单号 - drT["DYELOT"] = MainWindowViewModel.WorkNumder; - drT.EndEdit(); - SQLiteHelpers.InsertData("RUN", SQLiteHelpers.DataTableToDictionary(data_t));//行插入 + dt.BeginEdit(); //添加订单号 + dt["DYELOT"] = MainWindowViewModel.Dyelot; + dt.EndEdit(); + SQLiteHelpers.InsertData("RUN", SQLiteHelpers.ToDictionary(dt));//行插入 } SQLiteHelpers.Close(); //关闭连接 APILog.LOGlog(MainWindowViewModel.WorkNumder.ToString(), "UserActions", "Insert STEP = " + n, diff --git a/View/WorkOrderView.xaml b/View/WorkOrderView.xaml index ad52f34..099e990 100644 --- a/View/WorkOrderView.xaml +++ b/View/WorkOrderView.xaml @@ -91,6 +91,7 @@ +