只是想如果其他人有类似的问题,我会回答这个问题。
在保存数据方面,数据库是最好的选择。当您有多个用户时。写入文本文件将导致权限问题。我遇到的问题是没有任何列可以用作外键。如果您想将不同的表与一个客户或订单相关联,这当然是一个问题。
我解决此问题的方法是将每个列数组合并为一个字符串
此代码读取 Double-Swing Gate DatagridView 并将其合并为单个字符串...读取方法是我自己的。很简单
if (ds_checkBox.Checked)
{
int numberOfRows_ds = RowCount_gateDouble();
ds_Qty = ReadGateDoubleQty(numberOfRows_ds);
ds_Height = ReadGateDoubleHeight(numberOfRows_ds);
ds_Width = ReadGateDoubleWidth(numberOfRows_ds);
ds_total = CalculateTotal_Gates(ds_Qty, numberOfRows_ds);
string dsgtemp1 = ConvertStringArrayToStringJoin(ds_Qty);
string dsgtemp2 = ConvertStringArrayToStringJoin(ds_Height);
string dsgtemp3 = ConvertStringArrayToStringJoin(ds_Width);
gateDS_data = string.Format("{0}\r\n{1}\r\n{2}", dsgtemp1, dsgtemp2, dsgtemp3);
visible_ds = 1;
}
这允许您将数据网格存储到数据表中的一个单元格中。因此,对于每个订单,您基本上都有一个 dataRow。一行包含客户的基本详细信息和订单信息。我的现在有点复杂,因为客户的订单分为三个阶段,报价 -> 订单 -> 发票。但是,关键是,所有输入都在一个方便的地方。
然后,无论出于何种原因,您都可以轻松地在每个相应的数据网格或文本框上显示订单信息
ds_checkBox.Checked = true;
string theGate_ds = stringArray1[13].ToString();
string[] lines_gate_ds = theGate_ds.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);
string[] gate_ds_qty = lines_gate_ds[0].Split('.');
string[] gate_ds_height = lines_gate_ds[1].Split('.');
string[] gate_ds_width = lines_gate_ds[2].Split('.');
for (int i = 0; i < gate_ds_qty.Length; i++)
{
// Create a new row.
InputDataSet.Gate_ds_InputRow newOutputRow;
newOutputRow = inputDataSet1.Gate_ds_Input.NewGate_ds_InputRow();
newOutputRow.gate_ds_qty = string.Format("{0}", gate_ds_qty[i]);
newOutputRow.gate_ds_height = string.Format("{0}", gate_ds_height[i]);
newOutputRow.gate_ds_width = string.Format("{0}", gate_ds_width[i]);
// Add the row to the Region table
this.inputDataSet1.Gate_ds_Input.Rows.Add(newOutputRow);
// Save the new row to the database
}
我用过 MySql,值得学习如何使用任何类型的数据库