DataRow dr;
dr = ((dgv.DataSource) as DataTable).Rows[dgv.CurrentRow.Index];
dgv是winform上预定义的DataGridView。 博士总是单身。
找到上述代码。
但这行不通。因为CurrentRow.Index
未绑定到DataTable's Index
。
我认为将DataGridViewRow复制到DataRow是最简单的方法。不可能吗?
尝试此操作是为了在更改dgv时更新到数据库或从数据库中删除。对于本地dgv的远程数据库CRUD,任何其他更好的解决方案都应该很棒。
谢谢。
答案 0 :(得分:0)
您可以通过在数据库表中定义一个ID列来直接将datagridview链接到数据库表,而无需通过数据表(如下所示,您可以在datagridview中显示或不显示ID列)
后面的代码:
SqlCommand update = new SqlCommand();
update.connection = conn; // conn is your SqlConnection to the server
update.parameters.add("@Id",[sqldbtype.int]).value=dgv.Rows[dgv.CurrentRow.Index].Cell[0]; // 0 is the cell index of the ID column
update.Commandtext="Delete from table where [ID]=@ID" // delete the selected row
conn.open();
update.ExecuteNonQuery();
SqlDataAdapter adapter = SqlDataAdapter("SELECT*FROM Table", conn);
conn.close();
Datatable table = new Datatable();
adapter.Fill(table);
dgv.Datasource = table.Items;