我尝试更改DataTable的列名,但是有些我丢失了数据。
foreach (DataRow dr in item)
Ds.Tables[0].ImportRow(dr);
Table.Columns[0].ColumnName = "Barcode";
Table.Columns[1].ColumnName = "Description";
Table.Columns[2].ColumnName = "Price";
Table.Columns[3].ColumnName = "Cost";
Table.Columns[4].ColumnName = "Stock";
Table.Columns[5].ColumnName = "Dept #";
updateDgv.DataSource = Table;
答案 0 :(得分:4)
首先,正确的代码是:
DataTable table = new DataTable();
table.Columns.Add("ItemNo", typeof(string));
table.Columns[0].ColumnName = "Item #";
代码运行后,您有一个DataTable,其中一列名为Item #
。
没有行或数据,因为您没有添加任何数据。所以你没有失去任何东西。
答案 1 :(得分:3)
我已经测试了您的代码,它似乎工作正常:
DataTable table = new DataTable();
table.Columns.Add("ItemNo", typeof(string));
table.Columns.Add("ItemName", typeof(string));
DataRow dr = table.NewRow();
dr[0] = "1";
dr[1] = "Name1";
table.Rows.Add(dr);
dr = table.NewRow();
dr[0] = "1";
dr[1] = "Name1";
table.Rows.Add(dr);
table.Columns[0].ColumnName = "Item #";
您可能正在尝试稍后在代码中通过列名访问数据,这是它失败的地方。只需重命名列名称,您就不会丢失数据。 (这也不是一个好的做法,在表格列名中使用特殊字符)
从数据可视化器中查看以下屏幕截图
列重命名之前:
列重命名后: