c# – 使用OleDbCommandBuilder时访问SQL语法错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 使用OleDbCommandBuilder时访问SQL语法错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1928字,纯文字阅读大概需要3分钟。
内容图文
![c# – 使用OleDbCommandBuilder时访问SQL语法错误](/upload/InfoBanner/zyjiaocheng/901/60593b26bffb4932b202b732354f5053.jpg)
我将使用C#中的OleDbDataAdapter在Access数据库中插入数据,但我在INSERT INTO命令中出现错误消息语法错误
BackgroundWorker worker = new BackgroundWorker();
OleDbDataAdapter dbAdapter new OleDbDataAdapter();
OleDbConnection dbConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\PMS.mdb");
worker = new BackgroundWorker();
worker.WorkerReportsProgress = true;
worker.DoWork += InsertJob;
worker.ProgressChanged += InsertJobCompleted;
worker.RunWorkerAsync(args);
而InsertJob函数是:
private void InsertJob(object sender, DoWorkEventArgs e)
{
var args = (InsertJobArgs)e.Argument;
try
{
dbAdapter.SelectCommand = new OleDbCommand("SELECT * FROM Sheet", dbConnection);
dbAdapter.Fill(args.DataTable);
var builder = new OleDbCommandBuilder(dbAdapter);
var row = args.DataTable.NewRow();
row["UserName"] = args.Entry.UserName;
row["Password"] = args.Entry.Password;
args.DataTable.Rows.Add(row);
dbAdapter.InsertCommand = builder.GetInsertCommand();
dbAdapter.Update(args.DataTable);
builder.Dispose();
}
catch (Exception ex)
{
args.Exception = ex;
worker.ReportProgress(0, args);
return;
}
worker.ReportProgress(100, args);
}
我在线收到错误:dbAdapter.Update(args.DataTable);
我尝试使用visual studio调试它,发现所有InsertCommand参数值都为null
我尝试在调用dbAdapter.Update(args.DataTable)之前通过此代码手动插入它;
dbAdapter.InsertCommand.Parameters[0].Value = args.Entry.UserName;
dbAdapter.InsertCommand.Parameters[1].Value = args.Entry.Password;
解决方法:
试试这个:
紧接着就行了
var builder = new OleDbCommandBuilder(dbAdapter);
添加两行
builder.QuotePrefix = "[";
builder.QuoteSuffix = "]";
这将告诉OleDbCommandBuilder将表和列名称包装在方括号中,生成一个INSERT命令
INSERT INTO [TableName] ...
而不是默认表格
INSERT INTO TableName ...
如果任何表或列名称包含空格或“有趣”字符,或者它们恰好是Access SQL中的保留字,则必须使用方括号. (在您的情况下,我怀疑您的表有一个名为[Password]的列,而PASSWORD是Access SQL中的保留字.)
内容总结
以上是互联网集市为您收集整理的c# – 使用OleDbCommandBuilder时访问SQL语法错误全部内容,希望文章能够帮你解决c# – 使用OleDbCommandBuilder时访问SQL语法错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。