C# INSERT INTO 语句的语法错误,求解!!!

sunwl_191 2009-11-23 03:06:36
string con1 = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source = ...\data\fileinfosys.mdb;Persist Security Info=False;Jet OLEDB:Database Password=123;";
string constring = "INSERT INTO [item_directory](id,name,superior,finished,no,pno) VALUES(" + ite.Id + ",'" + ite.Name.ToString() + "'," + ite.Superior + "," + ite.Finished + ",'" + ite.No.ToString() + "','" + ite.ParentNo.ToString() + "')";

OleDbConnection dbCon = new OleDbConnection(con1);
OleDbCommand dbCmd = new OleDbCommand(constring, dbCon);
try
{
dbCon.Open();
dbCmd.ExecuteNonQuery();
}
运行提示:INSERT INTO 语句的语法错误!
求解?
谢谢!
...全文
199 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yes1000y 2009-11-23
  • 打赏
  • 举报
回复
关键字需要[],为了保险起见,values()里的所有值都用单引号引起来,避免字符串插入到int类型
sunwl_191 2009-11-23
  • 打赏
  • 举报
回复
谢谢大家!
谢谢1楼,把字段都用[]括起来,就不会出现错误了。!
lemong 2009-11-23
  • 打赏
  • 举报
回复
用SqlParameter类型传递参数
sunwl_191 2009-11-23
  • 打赏
  • 举报
回复
谢谢大家!
我把constring的值 打印出来复制到ACCESS里运行 都是可以的。

superior是int
moonlightme 2009-11-23
  • 打赏
  • 举报
回复
把sql语句console.write出来
沉默味道ron 2009-11-23
  • 打赏
  • 举报
回复
给一个办法:调试,取出sql语句,然后到查询分析器里执行。就可以找到原因了。
沉默味道ron 2009-11-23
  • 打赏
  • 举报
回复
superior的数据类型是什么?
nyq1999 2009-11-23
  • 打赏
  • 举报
回复
语法错误的可能很多:可能是表名不存在,可能字段名错了,可能值里边有特殊的符号截断了sql

当然建议插入使用参数化,不过要想找到原因-最好调试,把那条sql语句监视出来到数据库里看
pupo 2009-11-23
  • 打赏
  • 举报
回复
把字段都用[]括起来看看

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧