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 @@
+