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

コードを実行すると、。という名前の1つの列を持つ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 に答える