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:        }

解决方案 »

  1.   

    跟踪代码,看看输出什么语句,然后放到SQLServer去执行就知道了
      

  2.   

    SUM 这样的东西 最好加个[]
      

  3.   

    问题出在sql变量的拼接上,但楼主并没有把sql变量的赋值完全贴出来。
    再有,编写sql语句最好参数化,这样防止注入攻击。
      

  4.   

    row["ProductsID"],row["NUM"], row["PRICE"],row["SUM"], UserId 中的一个为空
      

  5.   

    可以print @SQL出来,也可以换成Store procedure写法都能够解决问题的。。