如何解决写入我的 Access 数据库时出现语法错误
string tableName = "messages_user-test";
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\janke\\source\\repos\\Unichat\\Unichat\\bin\\Debug\\history.accdb;Persist Security Info=False;");
conn.open();
OleDbCommand comm = new OleDbCommand();
comm.Connection = conn;
string writestring = "insert into " + tableName + " ([from],[to],[datetime],[message]) values (@from,@to,@datetime,@message);";
Console.WriteLine(writestring);
comm.CommandText = writestring;
comm.Parameters.AddWithValue("@from",from);
comm.Parameters.AddWithValue("@to",to);
comm.Parameters.AddWithValue("@datetime",date);
comm.Parameters.AddWithValue("@message",text);
comm.ExecuteNonQuery();
comm.dispose();
conn.Close();
当我执行程序时,我在 comm.ExecuteNonQuery();
处收到此错误
System.Data.OleDb.OleDbException: "Syntaxerror in INSERT INTO statement."
我对 OleDB 还很陌生,我已经阅读了数百个关于此错误的帖子,但没有任何效果对我有用。
解决方法
-
表名和字段名使用方括号
-
可能是导致错误的日期(从、到、日期)值
-
不要忘记添加 try..catch
-
检查分析器以获取更多详细信息
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\janke\\source\\repos\\Unichat\\Unichat\\bin\\Debug\\history.accdb;Persist Security Info=False;")) { string strFeedback = ""; string tableName = "messages_user-test"; string writestring = string.Format("INSERT INTO [{0}] ([from],[to],[datetime],[message]) VALUES (@from,@to,@datetime,@message);",tableName); OleDbCommand comm = new OleDbCommand(writestring); comm.Parameters.Add(new OleDbParameter("@from",from.ToString("yyyy-MM-dd"))); comm.Parameters.Add(new OleDbParameter("@to",to.ToString("yyyy-MM-dd"))); comm.Parameters.Add(new OleDbParameter("@date",date.ToString("yyyy-MM-dd HH:mm:ss"))); comm.Parameters.Add(new OleDbParameter("@message",text)); try { strFeedback = comm.ExecuteNonQuery().ToString() + " record has been added successfully!"; } catch (Exception ex) { strFeedback = "ERROR: " + err.Message; } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。