如何从 DataGridView 中的一行获取 DataRow
Posted
技术标签:
【中文标题】如何从 DataGridView 中的一行获取 DataRow【英文标题】:How do I get a DataRow from a row in a DataGridView 【发布时间】:2010-12-21 19:03:29 【问题描述】:我正在使用数据绑定的 Windows 窗体 DataGridView
。如何从DataGridView
中用户选择的行转到作为其来源的DataTable
的DataRow
?
【问题讨论】:
【参考方案1】:DataRow row = ((DataRowView)DataGridViewRow.DataBoundItem).Row
假设你绑定了一个普通的DataTable
。
MyTypedDataRow row = (MyTypedDataRow)((DataRowView)DataGridViewRow.DataBoundItem).Row
假设您已经绑定了一个类型化的数据表。
请参阅article on MSDN 了解更多信息。
【讨论】:
谢谢。关于一个相关问题;如何键入我的行? 您需要阅读此内容:msdn.microsoft.com/en-us/library/esbykkzb(VS.71).aspx。但是,如果您还没有这样做,我建议您忽略它们并转向 LINQ to SQL:msdn.microsoft.com/en-us/library/bb425822.aspx 可爱的解决方案!像魅力一样工作,我以这种方式使用: ((dgvAttached.SelectedCells[0].OwningRow.DataBoundItem as DataRowView).Row as DataRow)【参考方案2】:DataTable table = grdMyGrid.DataSource as DataTable;
DataRow row = table.NewRow();
row = ((DataRowView)grdMyGrid.SelectedRows[0].DataBoundItem).Row;
【讨论】:
【参考方案3】:在DataGridViewRow
中有一个名为DataBoundItem
的对象类型的属性。
这将包含一个DataRowView
(您可以检查一下)
【讨论】:
【参考方案4】:在 Visual Studio 2017 .NET 4.5 中,我取得了成功
var row = (DataRowView) e.Row.DataItem;
【讨论】:
这是 ASP.Net,不是 WinForms。以上是关于如何从 DataGridView 中的一行获取 DataRow的主要内容,如果未能解决你的问题,请参考以下文章
winform如何从DataGridView中从右键菜单获取一行数据
如果相同的 DateTime 已经在一行中,如何覆盖 dataGridView 中的一行?
如何在C#中 双击datagridview1中的一行数据,添加到新的datagridview2中。 B/C VS2010