在C#中更改数据表中的列名

时间:2012-04-18 15:32:10

标签: c# datatable

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

2 个答案:

答案 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 #";

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

列重命名后:
enter image description here