我正在使用 DataSet 和 TableAdapter 来填充 Datagridview。Datagridview 允许在底部插入新记录。现在,当我在 Datagridview 中输入新记录的值时,该记录不会自动保存回数据库。你需要处理哪个事件或我需要编写什么代码才能将新记录保存回数据库。
我正在使用 C#。
我正在使用 DataSet 和 TableAdapter 来填充 Datagridview。Datagridview 允许在底部插入新记录。现在,当我在 Datagridview 中输入新记录的值时,该记录不会自动保存回数据库。你需要处理哪个事件或我需要编写什么代码才能将新记录保存回数据库。
我正在使用 C#。
您可以在某处放置一个保存按钮,当用户单击该按钮时,您可以调用如下方法:
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);
}
你在调用Update()
方法TableAdapter
吗?以下代码来自MSDN 的讨论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 事件处理程序来保存您的逻辑.