将DataGridView中添加的行保存到数据库

时间:2014-06-17 18:51:38

标签: c# winforms datagridview

我正在尝试将DataGridView中添加的新行保存到数据库中。我无法理解要调用哪种方法 - gridview1_UserAddedRowgridview1_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});
}

不幸的是,这不起作用,也没有插入任何内容。实际上,我认为在单击新行时会调用此事件。我怎样才能在数据库中插入新创建的行?

2 个答案:

答案 0 :(得分:1)

代码没有更新任何数据库,因为没有代码可以更新它。

您需要执行查询以更新这些新值。您可以尝试使用Commandshttp://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.