問題が発生しました。DataTableを使用してdataGridViewにデータを保存します。データは次のように入力されました。
dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("par", typeof(string));
dt.Columns.Add("max", typeof(int));
dt.Columns.Add("now", typeof(int));
dt.Rows.Add(new object[] { id++,i + " " + j++, strarr[0], strarr[1] }); // ... etc etc
dataGridView1.DataSource = dt;
今、私はいくつかの変更を行いたいので、コードを使用します:
dt.Rows[1].ItemArray[3] = "VALUE";
デバッグするとき、ItemArrayは目的の行を表します。そのため、そのオーケーですが、それでも変更はできません。 DataTableを更新する方法???私はグーグルだと何も:(
SetFieldメソッドを試してください。
table.Rows[i].SetField(column, value);
table.Rows[i].SetField(columnIndex, value);
table.Rows[i].SetField(columnName, value);
これでジョブが完了し、Rows [i] [j]を使用するよりも少し「クリーン」になります。
dt.Rows[1].ItemArray
は、アイテム配列のコピーを提供します。あなたがそれを修正するとき、あなたはオリジナルを修正していない。
これを簡単に行うことができます:
dt.Rows[1][3] = "Value";
ItemArrayプロパティは、すべての行の値を変更するときに使用されます。
例:
dt.Rows[1].ItemArray = newItemArray;
おそらく事前にプロパティdt.Columns["columnName"].ReadOnly = false;
を設定する必要があります。