0

したがって、データベースから既に入力されている型指定されたデータセットがあります。特定の Windows フォームを表示するときに、このデータセットに一時的な列をいくつか追加して、グリッドに表示したいと考えています。

問題は、これらの列を正常に追加できることですが、プログラムで追加した列の 1 つに値を設定しようとすると、値が変更されず、行の行状態が変更されないままです。

//DataSet has already been filled from database
private void AddColumns( MyTypedDataSet DataSet )
{
   DataSet.Table1.Columns.Add( "newCol", typeof(double));

   foreach( MyTypedDataSet.Table1Row dataRow in DataSet.Table1 )
      dataRow["newCol"] = 123.4;
}

ウォッチ ウィンドウを開くと、foreach ループ全体にdataRow.RowState残ります。Unchanged

ループの実行後に DataSet ビジュアライザーを開くと、すべての行の列は DBNull のままです

どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

0

try to commit yours data before add modification (AcceptChanges)

            DataSet.Table1.AcceptChanges();

           foreach( MyTypedDataSet.Table1Row dataRow in DataSet.Table1 )
           {
                dataRow["newCol"] = 123.4;
           }
于 2012-06-29T15:41:51.917 に答える