如何解决使用DataAdapter更新Access数据库时,为什么会出现“参数不正确”的提示?
我要做什么:
使用DataTable和DataAdapter更新.mdb Access数据库。请在下面查看我的代码。
using (OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;
Jet OLEDB:Database Password=iaggyah;User ID=Admin;
Data Source=C:\aaa\aaa\aaa\aaa\aaa\aaa\aaa\resources\Survey1.mdb;"))
{
con.Open();
OleDbCommand cmd = new OleDbCommand("SELECT * FROM [SurveyTest1]",con);
surveyTbl.Load(cmd.ExecuteReader());
surveyTbl.Rows[0]["SurveyName"] = "test2";
try
{
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand("SELECT * FROM [SurveyTest1]",con);
OleDbCommandBuilder cmdBuilder = new OleDbCommandBuilder(adapter);
cmdBuilder.QuotePrefix = "[";
cmdBuilder.QuoteSuffix = "]";
adapter.DeleteCommand = cmdBuilder.GetDeleteCommand();
adapter.InsertCommand = cmdBuilder.GetInsertCommand();
adapter.UpdateCommand = cmdBuilder.GetUpdateCommand();
adapter.Update(surveyTbl);
}
catch (Exception e)
{
string error = e.Message;
}
}
问题
当它到达“ adapter.Update”行时,它会引发OleDbException并显示消息“参数不正确”。请查看以下错误详细信息:
错误代码:-2147024809 来源:System.Data.Common 堆栈跟踪:
at System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent,BatchCommandInfo[] batchCommands,Int32 commandCount)
at System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgs rowUpdatedEvent,Int32 commandCount)
at System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows,DataTableMapping tableMapping)
at System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable,DataTableMapping tableMapping)
at System.Data.Common.DbDataAdapter.Update(DataTable dataTable)
at Tests.Test.UpdateTest_ReturnsTrue() in C:\aaa\aaa\aaa\aaa\aaa\aaa\aaa\Test.cs:line 251
我已经广泛地搜索了这个问题,但没有发现任何相关的内容。 我尝试编写一个更新命令并以这种方式进行更新,这似乎可行。因此, 我想到的另一种选择是仅更新for循环中的每一行,但我需要能够在运行时更新数据库中的任何表,以便可能难以对不同的数据类型进行动态更新。我认为我将不得不使用varchar(除非我弄错了?)。
其他详细信息:
Windows 10
.NET Framework 4.7.2
Visual Studio 2019
一个类库项目
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。