DataGridView更改后不使用PK更新数据库

时间:2015-01-23 14:02:30

标签: c# ms-access odbc

我已经被困在这一段时间了,所以我希望有人可以帮我解决这个问题。

我有一个Access数据库。它是一个旧的,我想尽快用SQL Server替换它,但出于实际原因,我现在需要使用这个。 在我的应用程序中,我有一个datagridview。在这里,我从Access数据库加载数据,用户可以更改它。到目前为止一切都很好。

然后我有一个Save按钮供用户提交他的更改。通常,我会使用此代码:

//Data adapter initialized with a select-command when the gridview was filled.    
OdbcDataAdapter adapter;
OdbcCommandBuilder builder = new OdbcCommandBuilder(adapter);
adapter.Udpate(table);

但是,现在我收到错误消息"Dynamic SQL generation for the UpdateCommand is not supported against a SelectCommand that does not return any key",这是因为我的数据库没有主键(每个ID包含多个条目,因此无法成为有效的PK)。

所以我想我自己写了一个更新命令:

OdbcCommand updateCommand = new OdbcCommand("UPDATE myTable SET name = ?,  mobile = ?, notes = ? WHERE id = ?", connection);
updateCommand.Parameters.Add("@name", OdbcType.NVarChar).Value = ???
updateCommand.Parameters.Add("@mobile", OdbcType.NVarChar).Value = ???
updateCommand.Parameters.Add("@notes", OdbcType.NVarChar).Value = ???;
updateCommand.Parameters.Add("@id", OdbcType.Int).Value = ID_is_known;
adapter.UpdateCommand = updateCommand;

但是,我不知道该怎么做才能进入' ???的参数。由于它是一个通用的update-command,我无法使用datagridview中的行。

有人可以帮我完成updateCommand吗?或者我完全走错了路,是否有更好/更容易的解决方案呢?提前谢谢!

0 个答案:

没有答案