我在MSSQL数据库中使用C#winforms。
我在“飞行员”数据库中有表格
,我用来自Pilots表的数据填充datagridview“dgvPilots”。

dgvPilots.DataSource = Connection.dm.Pilots.ToList();

我启用多选。
现在我需要从datagridview获取多选数据。
我如何将选择的行转换为“Pilots”对象并获取PilotsID。

我当前的错误是“无法将对象类型DataGridViewRow强制转换为“.Data.Pilots”类型...

我也尝试这样铸造
dgvPilots.SelectedRows.Cast<Pilots>().ToList();

但它返回DataGridViewRow项类型。

最佳答案

您将需要迭代该集合,并遵循作为基础数据的DataBoundItem属性。

var pilots = new List<Pilots>(grid.SelectedRows.Count);

for(int index = 0; index < grid.SelectedRows.Count; index++)
{
   var selectedRow = grid.SelectedRows[index];
   var pilot = (Pilots)selectedRow.DataBoundItem;

   pilots.Add(pilot);
}

上面的代码显示了如何实现此目的(我徒手编写了代码,以免出现语法错误)。

这是有关DataBoundItem属性的msdn文章:http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewrow.databounditem(v=vs.110).aspx

08-15 22:12