我正在尝试将DataGridView
中添加的新行保存到数据库中。我无法理解要调用哪种方法 - gridview1_UserAddedRow
或gridview1_RowsAdded
(如果它只是一行呢?)到目前为止,我已经看到gridview1_RowsAdded
每次执行时都会执行表格加载。
使用DataGridView
绑定BindingList
。
这就是gridview1_UserAddedRow
的样子:
private void dataGridView1_UserAddedRow(object sender, DataGridViewRowEventArgs e)
{
int lastRow = dataGridView1.Rows.Count - 2;
DataGridViewRow newRow = dataGridView1.Rows[lastRow];
bindinglist.Add(new MyTestClass{ ScheduleId = scheduleId, Name = Convert.ToString(newRow.Cells["Name"].Value),
Value = Convert.ToString(newRow.Cells["Value"].Value), TestId = testId});
}
不幸的是,这不起作用,也没有插入任何内容。实际上,我认为在单击新行时会调用此事件。我怎样才能在数据库中插入新创建的行?
答案 0 :(得分:1)
代码没有更新任何数据库,因为没有代码可以更新它。
您需要执行查询以更新这些新值。您可以尝试使用Commands
:
http://msdn.microsoft.com/en-us/library/aa984369(v=vs.71).aspx
或者将列表更改为DataTable
,这样您就可以“自动”(更难)更新值:http://msdn.microsoft.com/en-us/library/z1z2bkx2(v=vs.110).aspx
答案 1 :(得分:0)
我会远离数据绑定,但如果你不能,你可以试试这个:
// Create a new row
DataRow dr = YourDataSet.Vendors.NewRow(); // Change 'Vendors' with your database table's name
// Add some data to your new row
dr[0] = 124;
// Insert the previous row
YourDataSet.Vendors.Rows.InsertAt(dr, 1); // Change the 1 to your index where you want to instert the data.