INSERT INTO 语句的语法错误。

tianjingxiaoxiong 2012-06-07 08:59:51
cmd_3.CommandText = "INSERT INTO User_inf VALUES ('" + tokens[1] + "', '" + tokens[2] + "','" + tokens[3] + "','" + tokens[4] + "','" + tokens[5] + "','" + tokens[6] + "','" + tokens[7] + "','" + tokens[8] + "','" + tokens[9] + "','" + tokens[10] + "')";

大家帮忙找找吧
...全文
199 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianjingxiaoxiong 2012-06-08
  • 打赏
  • 举报
回复
按照9楼的建议,好了!
呵呵,谢谢大家,学会调试很重要
小枪 2012-06-08
  • 打赏
  • 举报
回复
好吧 承认直接被LZ那串字符串给镇住了 两个方案 1 string.format 拼字符串

另一个 直接存储过程 不解释
violet_han 2012-06-08
  • 打赏
  • 举报
回复
你可以在数据库中先检查以下你的插入语句,数据库一般都能检查出来的,然后改好了再往程序里写
EnForGrass 2012-06-07
  • 打赏
  • 举报
回复
这是很简单的问题,要学会调试,别人只给你提出可能出错的问题,还是需要你自己动手测试,这样你自己也才会有进步。
xiaoronghu 2012-06-07
  • 打赏
  • 举报
回复
把这个SQL语句输出看一下再找问题吧
孟子E章 2012-06-07
  • 打赏
  • 举报
回复
另外,对于关键字,要加[],如
INSERT INTO User_inf([User],[Code],Sex,Flag,Q_1,A_1,Q_2,A_2,Q_3,A_3)

如果不确定,都加上也不会报错。
孟子E章 2012-06-07
  • 打赏
  • 举报
回复
另外,你的VALUES后面这个空格是全角空格,也是不行的
VALUES (
VALUES (
孟子E章 2012-06-07
  • 打赏
  • 举报
回复
User,Code,Sex,Flag,Q_1,A_1,Q_2,A_2,Q_3,A_3
你的这些字段类型都是字符类型的吗》如果有数字类型的,后面插入的内容不能加''

如Code字段,
tianjingxiaoxiong 2012-06-07
  • 打赏
  • 举报
回复
INSERT INTO User_inf(User,Code,Sex,Flag,Q_1,A_1,Q_2,A_2,Q_3,A_3) VALUES ('吕文', '1','男','是','你的高中班主任的名字','张三','你的初中班主任的名字','张三','你的小学班主任的名字','张三')
孟子E章 2012-06-07
  • 打赏
  • 举报
回复
不是给你报告的很清楚了 。??
INSERT INTO 语句的语法错误。


sql的INSERT INTO 语句语法你不懂吗?
不懂的话就把
String sql = "INSERT INTO User_inf VALUES ('" + tokens[1] + "', '" + tokens[2] + "','" + tokens[3] + "','" + tokens[4] + "','" + tokens[5] + "','" + tokens[6] + "','" + tokens[7] + "','" + tokens[8] + "','" + tokens[9] + "','" + tokens[10] + "')";

MessageBox.Show(sql )

出来的内容贴上
tianjingxiaoxiong 2012-06-07
  • 打赏
  • 举报
回复
System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。
在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
在 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
在 EasyChat_Server.Listener.StartUp() 位置 C:\Documents and。。。。。

给的错误是这样的,你帮我看看吧
tianjingxiaoxiong 2012-06-07
  • 打赏
  • 举报
回复
没有自动增长的 id 列
__天涯寻梦 2012-06-07
  • 打赏
  • 举报
回复
你数据库表里有自动增长的 id 列吗,有的话语句里在表名后面把 id 以外的10个列名也加上
tianjingxiaoxiong 2012-06-07
  • 打赏
  • 举报
回复
tokens[1]-tokens[10]都是字符串,不过有空串!这样不行吗??
孟子E章 2012-06-07
  • 打赏
  • 举报
回复
cmd_3.CommandText = "INSERT INTO User_inf VALUES ('" + tokens[1] + "', '" + tokens[2] + "','" + tokens[3] + "','" + tokens[4] + "','" + tokens[5] + "','" + tokens[6] + "','" + tokens[7] + "','" + tokens[8] + "','" + tokens[9] + "','" + tokens[10] + "')";

tokens[1]-tokens[10]都有值吗?有单引号吗》?有的话要替换
tokens[1].Replace("'","''")
最好采用参数化插入

另外,你打印出cmd_3.CommandText 看是不是合法的sql啊

111,126

社区成员

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

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

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