Srđ*_*vić 5 c# sql-server winforms
我在MSSQL数据库中使用c#winforms.我在数据库"飞行员"中有表格,我用数据库表中的数据填充datagridview"dgvPilots".
dgvPilots.DataSource = Connection.dm.Pilots.ToList();
Run Code Online (Sandbox Code Playgroud)
我启用了多选.现在我需要从datagridview获取多选数据.如何将多选行转换为"Pilots"对象并获取PilotsID.
我当前的错误是"无法将对象类型DataGridViewRow转换为类型".Data.Pilots"......
我也尝试像这样投射
dgvPilots.SelectedRows.Cast<Pilots>().ToList();
Run Code Online (Sandbox Code Playgroud)
但它返回DataGridViewRow项类型.
Pet*_*ter 17
您将需要迭代集合并继续作为基础数据的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);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码展示了如何实现这一目标,(我对代码进行了解释,因此原谅了任何语法错误).
这是关于DataBoundItem属性的msdn文章:http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewrow.databounditem( v = vs.110).aspx
我不知道你的数据库结构是什么
var selectedPilots = dgvPilots.SelectedRows.Cast<Pilots>().ToList();
Run Code Online (Sandbox Code Playgroud)
是这样做的正确方法.但是我怀疑Pilots在你的情况下是一个DataTable,而你需要的是将这些物品投射到合适的Class类型 - 如果我必须射击,我会说你有一个Pilot(单数)类,你应该施展到.
| 归档时间: |
|
| 查看次数: |
18409 次 |
| 最近记录: |