【问题标题】:Import DataRow in DataTable在 DataTable 中导入 DataRow
【发布时间】:2011-03-14 11:26:12
【问题描述】:

我尝试将选定的行导入数据表以将其发送到函数。我去 Button Clickevent 一组下面的代码:

var dt = new DataTable();
foreach (var DataRow in dataGridView1.SelectedRows)
  dt.ImportRow(DataRow);

但是有一个错误,无法从对象转换为 DataRow。有什么解决这个问题的建议吗?

【问题讨论】:

标签: c# .net visual-studio datatable datarow


【解决方案1】:

您不能使用ImportRow,因为它需要DataRowDataGridView.SelectedRows 将返回 DataGridViewRow 的集合。

DataGridViewRow不是DataRow。但是,您可以使用DataGridViewRowDataBoundItem 属性来获取实际的DataRow

foreach (DataGridViewRow dataRow in dataGridView1.SelectedRows)
{
    DataRow dataBoundItem = ((DataRowView)dataRow.DataBoundItem).Row;
    dt.ImportRow(dataBoundItem);
}

【讨论】:

  • 感谢您的回答。 dataBoundItem 现在包含每一行,但在 dt.importRow 中没有任何操作。我调试 foreach 循环 dataBoundItem 包含 DataRow 但 dt 为空。我不知道为什么。
  • @kockiren - 只有当您要导入的 DataTable 与您要从中导入的 DataTable 的列匹配时,它才会起作用。
  • 有没有一种简单的方法来创建 TableStructur 或者我应该使用 foreach dataRow.column 创建结构
  • for (var i = 0; i
【解决方案2】:

DataTable.ImportRow 采用DataRow。但是,您的 datagridview1 包含 DataGridViewRows。您需要找到一种方法在两者之间进行转换 (example),或者从 DataGridViewRow 的数据构造新的 DataRow。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 2012-02-06
    • 2020-03-28
    相关资源
    最近更新 更多