我使用此代码将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。
发布于 2020-07-16 18:22:33
实际的对象从未存储过;ObjectReader将一个类型公开为数据读取器,允许像DataTable这样的消费者读取它,但这并不意味着您可以轻松地重新获得原始对象。然而!您可以尝试使用Dapper,它能够使用数据读取器并构造对象;您可以创建一个读取器,通过DataTableReader传递给Dapper。
https://stackoverflow.com/questions/62932110
复制相似问题