sql语句:',' 附近有语法错误。 各位大侠,帮我看看啊

mianrong 2013-07-01 11:23:22

DataRow row = this.OrderGoodsDetails.Rows[i];
_detailSql += string.Format(@"INSERT INTO OrderOds_Detail(OrdersNumber,ProductsID,ProductsName,ProductsColor,ProcductsPrint,NUM,PRICE,SUM,REMARK,Operator,Changed_Date,Is_USED,Version) VALUES('{0}',{1},'{2}','{3}','{4}',{5},{6},{7},'{8}',{9},getdate(),'1',0);",ordersnumber,row["ProductsID"],row["ProductsType"],row["ProductsColor"],ProcductsPrint,row["NUM"],row["PRICE"],row["SUM"],row["REMARK"],UserId);//ordersnumber为正常赋值


异常详细信息: System.Data.SqlClient.SqlException: ',' 附近有语法错误。

源错误:


行 367: + _detailSql + " end;";
行 368: }
行 369: DBclass.ExecSql(sql);
行 370: Response.Redirect("OrderManage.aspx");
行 371: }


郁闷死了,找了好几个小时,没找出问题出在什么地方。
...全文
3033 点赞 收藏 20
写回复
20 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mianrong 2013-07-02
问题已解决,sql语句是没有问题。 采用了一楼的方法,把它打印出来后,在查询分析器中分析。 最后发现是:test0,UserId,test1,UserId这个值没有获取到,为空,所以在执行过程中出现了:test1,,test这样的语句。 错误提示sql语句语法错误。然后我很狗血的一直在检查sql语法。。。。。。。
回复
persuit666 2013-07-02
1.sql打印出来到数据库执行下 2.找到sql错误后修改程序写法
回复
EnForGrass 2013-07-02
DataRow row = this.OrderGoodsDetails.Rows[i]; _detailSql += string.Format(@"INSERT INTO OrderOds_Detail(OrdersNumber,ProductsID,ProductsName,ProductsColor,ProcductsPrint,NUM,PRICE,SUM,REMARK,Operator,Changed_Date,Is_USED,Version) VALUES('{0}',{1},'{2}','{3}','{4}',{5},{6},{7},'{8}',{9},getdate(),'1',0);",ordersnumber,row["ProductsID"],row["ProductsType"],row["ProductsColor"],ProcductsPrint,row["NUM"],row["PRICE"],row["SUM"],row["REMARK"],UserId);//ordersnumber为正常赋值 注意逗号必须为英文的, 改成 DataRow row = this.OrderGoodsDetails.Rows[i]; _detailSql += string.Format(@"INSERT INTO OrderOds_Detail(OrdersNumber,ProductsID,ProductsName,ProductsColor,ProcductsPrint,NUM,PRICE,SUM,REMARK,Operator,Changed_Date,Is_USED,Version) VALUES('{0}',{1},'{2}','{3}','{4}',{5},{6},{7},'{8}',{9},'{10}','1',0);",ordersnumber,row["ProductsID"],row["ProductsType"],row["ProductsColor"],ProcductsPrint,row["NUM"],row["PRICE"],row["SUM"],row["REMARK"],UserId,getdate());//ordersnumber为正常赋值
回复
吴青峰 2013-07-02
不是我说你,不要用string.Format这个,因为它会默认你参数不对。 你直接这样: "INSERT INTO OrderOds_Detail(OrdersNumber,ProductsID,ProductsName,ProductsColor, ProcductsPrint,NUM,PRICE,SUM,REMARK,Operator,Changed_Date,Is_USED,Version)" VALUES('"+ordersnumber+"',"+row["ProductsID"]+",'"+row["ProductsType"]+"', '"+row["ProductsColor"]+"','"+ProcductsPrint,row["NUM"]+"',"+row["PRICE"]+", "+row["SUM"]+","+row["REMARK"]+",'"+UserId+"',{9},getdate(),'1',0);" 少了个参数,看看{9}是什么东西,按着我这种说服去做,记得全部给分我。
回复
楼主请调试.断点后,将执行的sql语句复制到sqlserver 查询器中。就知错在哪里了.
回复
H_Gragon 2013-07-02
引用 3 楼 sp1234 的回复:
把 VALUES 部分中的全角中文的逗号,替换为半角英文逗号,
试试!
回复
lionjian 2013-07-02
直接断点看看sql语句是怎么样,然后复制进去SQL SERVER里面试试不就行了,会告诉你哪里错的啊
回复
Change_L 2013-07-02
引用 5 楼 myhope88 的回复:
你把sql语句输出来看一下就知道什么问题了嘛
+ +
回复
x_jefferson 2013-07-02
不怪楼主。我盯着看了5个小时,也没找到错。
回复
下次遇到这种问题,把你的SQL语句拿出来,直接放到查询分析器里面执行,这样直观一点。
回复
myhope88 2013-07-02
你把sql语句输出来看一下就知道什么问题了嘛
回复
引用 楼主 mianrong 的回复:
郁闷死了,找了好几个小时,没找出问题出在什么地方。
我很多年不用关系数据库了。我记得在SQL Server的查询分析器程序中,或者哪怕是osql控制台程序中,如果你将复制粘贴的sql语句执行一下,它就会告诉你第多少列的字符逗号,有问题,而且还会有个小指针指向这个字符位置。你应该用调试方式来找问题,不要再重复可笑地“找了好几个小时”的过程啦。
回复
把 VALUES 部分中的全角中文的逗号,替换为半角英文逗号,
回复
insus 2013-07-02
refer:


//DataRow row = this.OrderGoodsDetails.Rows[i];
//_detailSql += string.Format(@
string sql = "INSERT INTO [OrderOds_Detail] ([OrdersNumber] ,[ProductsID] ,[ProductsName] ,[ProductsColor] ,[ProcductsPrint] ,[NUM] ,[PRICE] ,[REMARK] ,[Operator] ,[Changed_Date],[Is_USED,Version]) VALUES ('" +
ordersnumber + "','" + row["ProductsID"] + "','" + row["ProductsType"] + "','" + row["ProductsColor"] + "','" + ProcductsPrint + "','" + row["NUM"] + "','" + row["PRICE"] + "','" + row["REMARK"] + "','" + UserId + "',getdate() ,'1' ,0) ";



为何有两个相同的字段?


再加上它是关键词,需要用"[xxx]"括起来。

回复
Jdragon 2013-07-02
貌似你的位数对不上吧??values()跟前面的对上了吗
回复
Regan-lin 2013-07-02
自己放到数据库试下,我看估计是你的参数配置出问题!
回复
E次奥 2013-07-02
把得到的sql语句拿到数据库执行一下。一切问题就迎刃而解!
回复
青春code 2013-07-02
有时候不是你不懂,只是你没有看出来。也许问题很简单,要学会分析问题啊
回复
饕餮123 2013-07-01
我教你个方法 Response.Write(sql) 或者直接断点调试,把sql文输出出来看,一目了然,你这样的格式化语句,最终还是sql文执行 少年要学会调试啊,你这个肯定是sql语句出错了
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2013-07-01 11:23
社区公告
暂无公告