【问题标题】:c# unable to edit datarow in datasetc# 无法编辑数据集中的数据行
【发布时间】:2011-03-29 18:19:00
【问题描述】:

我正在尝试编辑未链接到数据库的数据集中的数据(更改一行列中的值)。我已经用谷歌搜索了大约一个小时,没有结果,也没有很好的例子。希望有人可以帮助我。

我的表(DataTable1)有这些列 - ThreadID(字符串,PK),StatusText(字符串)。

我可以在 DataGridView 中选择一行,并获取 ThreadID 值。无论我如何尝试编辑关联数据集中的行,要么没有任何反应,要么出现错误。这是我现在拥有的:

string sThreadID = "";
sThreadID = gridThreads.Rows[gridThreads.CurrentRow.Index].Cells["ID"].Value.ToString();  // gives me a good id, which is in the dataset
DataRow drRow = dataThreads.Tables["DataTable1"].Rows.Find(sThreadID);
drRow["StatusText"] = "Test";

获取行(第 3 行)时出现的错误是:“对象引用未设置为对象的实例。”。我无法创建新的 DataRow 对象,因为它没有公共构造函数(根据我的研究)。

我确定我缺少一些基本的东西,但我不熟悉使用数据集。我究竟做错了什么?感谢您的帮助。

【问题讨论】:

  • 你检查drRow != null了吗?

标签: c# dataset datarow


【解决方案1】:

drRow 如何知道“statusText”是什么?您可能只得到一个浅拷贝,请尝试克隆/复制,以便也复制行的数据类型。只是一个想法。

【讨论】:

  • 另外,尝试使用 0 而不是 DataTable1 进行索引,除非这确实是表的名称。
  • 你知道吗,它确实被命名为“DataTable1”,但是当我切换到索引时它起作用了。感谢行业
【解决方案2】:

dataThreads 或 Tables["DataTable1"] 是 null 吗?

要创建新行,请使用数据表的NewRow() 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多