将从Datagridview输入的新记录保存到数据库中

时间:2011-09-14 12:29:04

标签: winforms c#-4.0 datagridview dataset datatableadapters

使用DataSet和TableAdapter填充Datagridview。 Datagridview允许在底部插入新记录。现在,当我在Datagridview中输入新记录的值时,记录不会自动保存回数据库。您需要处理哪个事件或需要编写哪些代码才能将新记录保存回数据库。

我正在使用C#。

2 个答案:

答案 0 :(得分:1)

你可以在某个地方放置一个“保存”按钮,当用户点击该按钮时,你可以调用这样的方法:

private void UpdateDataSet(DataSet dataSet)
{
    // Check for changes with the HasChanges method first.
    if(!dataSet.HasChanges(DataRowState.Modified)) return;

    // Create temporary DataSet variable and
    // GetChanges for modified rows only.
    DataSet tempDataSet = 
        dataSet.GetChanges(DataRowState.Modified);

    // Check the DataSet for errors.
    if(tempDataSet.HasErrors)
    {
        // Insert code to resolve errors.
    }
    // After fixing errors, update the data source with  
    // the DataAdapter used to create the DataSet.
    adapter.Update(tempDataSet);
}

答案 1 :(得分:0)

您是否在Update()上调用了TableAdapter方法?以下代码来自MSDN's discussion on the TableAdapter:

try 
{
    this.Validate();
    this.customersBindingSource.EndEdit();

    this.customersTableAdapter.Update(this.northwindDataSet.Customers);
    MessageBox.Show("Update successful"); 
} 
catch (System.Exception ex) 
{
    MessageBox.Show("Update failed"); 
}

有很多地方可以提供这种逻辑 - 正如Davide Piras建议您可以在表单上设置一个“保存”按钮,或者如果您希望在输入每行时保存数据,则可以将保存逻辑与RowValidated事件处理程序。