我正在处理一个新项目,我不知道我在哪里弄乱。我希望一些新的眼睛可以帮助我并引导我朝着正确的方向前进。
我的Windows窗体有一个数据网格视图和一个按钮,该按钮用于保存用户选择的选定行并将其保存到数据库。我现在不关心拯救我想知道我在dataGridView.Selected.Rows
做错了什么?我已将datagridview的SelectionMode属性更改为"完整行选择"。当它到达foreach循环时,所选的行被分解并保存到指定的对象,然后整个对象被保存到tabel /数据库。当它保存它时,似乎数据网格视图中的所有行不仅仅是用户选择的行......
提前致谢
foreach (DataGridViewRow dr in dataGridView1.SelectedRows)
{
int i = 0;
i = dataGridView1.SelectedRows[0].Index;
log slog = new log();
slog.Date = dataGridView1[0, i].Value.ToString();
slog.Level = dataGridView1[1, i].Value.ToString();
slog.Project = dataGridView1[2, i].Value.ToString();
slog.Number = dataGridView1[3, i].Value.ToString();
slog.Method = dataGridView1[4, i].Value.ToString();
slog.Property = dataGridView1[5, i].Value.ToString();
logEntity.logs.AddObject(slog);
}
logEntity.SaveChanges();
}
-
//other code tried
//for (int i = 0; i <= dataGridView1.SelectedRows.Count - 1; i++)
//var rowIndexes = dataGridView1.SelectedCells.Cast<DataGridViewCell>()
// .Select(cell => cell.RowIndex)
// .Distinct();
//dataGridView1.SelectedRows.Select(r => r.Index);
答案 0 :(得分:0)
我认为你的问题在于索引。如果i
我已经拥有你想要的那一行,我会摆脱它。
foreach (DataGridViewRow dr in dataGridView1.SelectedRows)
{
log slog = new log();
slog.Date = dr.cells(0).Value.ToString();
slog.Level = dr.cells(1).Value.ToString();
slog.Project = dr.cells(2).Value.ToString();
slog.Number = dr.cells(3).Value.ToString();
slog.Method = dr.cells(4).Value.ToString();
slog.Property = dr.cells(5).Value.ToString();
logEntity.logs.AddObject(slog);
}
logEntity.SaveChanges();