使用人:
-2016年MSAccess。
-开发快车。
-网格控件。
向“gridControl1”添加新条目后,需要从数据库中添加“ID”。
方案1:
-用户。填写所需字段;
-用户。将焦点转移到“gridControl1”;
-程序。向“gridControl1”添加一个新条目-“Record_1”;
Row_Changed
事件,我们将“Record_1”项添加到“database”;
-程序。为新条目“Record_1”更新“DataTable”中的ID;
执行脚本“Scenario_1”后,用户尝试更新新记录的任何字段。
-用户。更改输入字段“记录1”;
-程序。产生错误“UpdateCommand已影响1个预期项中的0个。”;
如何修复错误“UpdateCommand已影响1个预期项中的0个。”?
补充
public void connect()
{
string catBD = @"z:\vs\csharp\prb\718\01_pr\01_pr\01_pr\718.01.01.accdb";
string conBD = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}", catBD);
connection = new OleDbConnection(conBD);
connection.Open();
string query1 = "SELECT * FROM TableGrid_00";
OleDbCommand cmd1 = new OleDbCommand(query1, connection);
dt = new DataTable();
try
{
adapter = new OleDbDataAdapter(cmd1);
cmdBuilder = new OleDbCommandBuilder(adapter);
adapter.UpdateCommand = cmdBuilder.GetUpdateCommand();
adapter.InsertCommand = cmdBuilder.GetInsertCommand();
}
catch (Exception ex)
{
string s = ex.Message;
throw;
}
adapter.Fill(dt);
dt.RowChanged += new DataRowChangeEventHandler(Row_Changed);
}
private void Row_Changed(object sender, DataRowChangeEventArgs e)
{
adapter.Update(dt);
string SearchByColumn = "ID is null";
DataRow[] hasRows = dt.Select(SearchByColumn);
if (hasRows.Length != 0)
{
string query = "SELECT MAX(ID) FROM TableGrid_00";
OleDbCommand com;
OleDbDataReader dataReader;
com = new OleDbCommand(query, connection);
dataReader = com.ExecuteReader();
dataReader.Read();
int resultQuery = dataReader.GetInt32(0);
hasRows[0]["ID"] = resultQuery;
dataReader.Close();
}
else
{
}
}