【问题标题】:DataRow Deleting in DataGridView and attaching to DataTable in C#?在 DataGridView 中删除 DataRow 并在 C# 中附加到 DataTable?
【发布时间】:2013-05-30 05:21:43
【问题描述】:

我正在删除 DataGridView 中的一行,并且此 Datgridview 绑定到数据表 (dt)。删除行后。数据表中该行的数据被删除并显示错误。

【问题讨论】:

  • 您的代码会很有帮助。您是否在数据集和网格视图上使用更新、接受、刷新命令等?
  • 也许清除内容并重新绑定DataTable(重新运行查询)可以解决您的问题。
  • 如果我将数据重新绑定到该数据表无法清除错误@ChristianMark
  • 我们无法为数据表中的特定数据行分配错误

标签: c# datagridview datatable delete-row errorprovider


【解决方案1】:

有几种方法可以做到这一点。一种快速的方法是从修改后的数据表(删除后的数据表)中创建一个数据视图实例,然后在该数据视图上调用 ToTable() 方法。这将为我们提供原始数据。

DataView view= new DataView(yourTable, null, null, DataViewRowState.Deleted);
DataTable resultTable = view.ToTable();

另一种方法是

var rows=YourTable.Select(); // I assume your name of the table as YourTable and you can change it the way you want

foreach(var row in rows)
{
  if (row.RowState == DataRowState.Deleted)
{
   var splr_Cntctnm = (string)row["splr_Cntctnm", DataRowVersion.Original];
   //you can access all deleted field information as above
}

}

【讨论】:

  • 你在哪里选择数据行
  • 您不需要在我的第一种方法中提供任何选择语句,因为数据视图会自动提取所有已删除的行并创建一个包含所有已删除行的结果表。
  • 行错误是什么意思?如果您谈论数据表屏幕截图中的错误符号,那么这不是错误,而是当您检查数据表时,调试器中删除的行将如何表示。我建议您阅读有关行状态的一些基础知识,尤其是 DataRowState 枚举,以及它如何与任何给定数据表中数据行的不同状态相关联。参考 1:msdn.microsoft.com/en-us/library/…,参考 2:dotnetfunda.com/codes/…
猜你喜欢
  • 1970-01-01
  • 2020-03-28
  • 1970-01-01
  • 2012-05-03
  • 1970-01-01
  • 2017-01-30
  • 2012-08-01
  • 1970-01-01
  • 2011-03-07
相关资源
最近更新 更多