【问题标题】:Added column to dataset not allowing value to be set向数据集添加了不允许设置值的列
【发布时间】:2012-07-01 03:51:19
【问题描述】:

所以我有一个已从数据库中填充的类型化数据集。在显示特定的 Windows 窗体时,我想向此数据集添加一些临时列以显示在网格中。

问题是我可以很好地添加这些列,但是每当我尝试为我以编程方式添加的列之一设置一个值时,该值不会改变,并且该行的行状态保持不变。

//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;
}

如果我打开监视窗口,dataRow.RowState 在整个 foreach 循环中仍然是 Unchanged

如果我在循环运行后打开 DataSet Visualizer,每行的列仍然是 DBNull

任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: c# .net dataset


    【解决方案1】:

    在添加修改之前尝试提交您的数据 (AcceptChanges)

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

    【讨论】:

    • 那没有任何区别。值仍然是 DBNull。
    • 您是否尝试过在 DataTable 上使用 GetChanges(DataRowState.Modified)
    • 所有数据行的行状态不变,所以调用get changes(DataRowState.Modified)返回null。
    猜你喜欢
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2017-06-20
    相关资源
    最近更新 更多