1

我试图更改 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;
4

2 回答 2

4

首先,正确的代码是:

DataTable table = new DataTable();
table.Columns.Add("ItemNo", typeof(string));
table.Columns[0].ColumnName = "Item #";

代码运行后,您将拥有一个 DataTable,其中有一列名为Item #.

没有行或数据,因为您没有添加任何数据。所以你没有失去任何东西。

于 2012-04-18T15:45:30.133 回答
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 #";

可能您稍后在代码中尝试通过列名访问数据,这就是失败的地方。仅重命名列名不会丢失数据。(在表列名中使用特殊字符也是一个不好的做法)在列重命名之前
查看数据可视化器的以下屏幕截图

在此处输入图像描述

列重命名后:
在此处输入图像描述

于 2012-04-18T15:47:53.720 回答