0

我使用此代码转换IEnumerable<Register>Datatable,以便在其中使用扩展功能datagridview

DataTable table = new DataTable();
using (var reader = ObjectReader.Create(data))
{
   table.Load(reader);
}

现在我需要取回对象,例如单击行时。

private void dgRegisters_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
   if (e.RowIndex < 0 || e.ColumnIndex < 0) return;
   var register = ((DataGridView)sender).Rows[e.RowIndex].DataBoundItem as Register;
}

我不知道如何找回它var register。总是null因为它是一个DataRowView.

4

1 回答 1

0

实际对象从未被存储;ObjectReader将类型公开为数据读取器,允许消费者DataTable从中读取,但这并不意味着您可以轻松地重新获取原始对象。然而!您可以尝试使用 Dapper,它具有使用数据读取器和构造对象的能力;您可以创建一个阅读器以通过DataTableReader.

于 2020-07-16T10:22:33.387 回答