"Insert into BillMenuItem (BillMenuItemID,MenuItemCode,OrderQty,ChargeQty,MenuItemPrice,MenuItemStatus,OrderTime,BillNo,Re,Dept2Code,MenuSuiteNo,WaiterID,Standard,OriginOrderPrice,MenuItemCName,TableNo) Values ('" + billMenuItemId + "','" + menuItemCode + "','" + orderQyt + "','" + orderQyt + "','" + menuItemPrice + "','" + menuItemStatus + "','" + orderTime + "', '"+ billno +", re +'"+ guestNeed + "','" + dept2 + "','" + menuSuiteNo + "','" + waiter + "','" + standard + "','" + menuItemPrice + "','" + menuItemCName + "','" + tableno + "')"
执行时总是报:
ERROR [42000] [Sybase][ODBC Driver]Syntax error or access violation
看不出有什么问题,
请教

解决方案 »

  1.   

    把语句实现改称insert into ......values (@field1,.......@field2)command.set('@field1',fieldvalue);
    .......在测试一下
      

  2.   

    调试的时候把最终的sql语句贴出来啊
    这样让大家怎么看
      

  3.   

    :)
    执行语句:
          OdbcConnection con1 = new OdbcConnection(strConnect);
          OdbcCommand objCommand = new OdbcCommand("Insert   into   BillMenuItem   (BillMenuItemID,MenuItemCode,OrderQty,ChargeQty,MenuItemPrice,MenuItemStatus,OrderTime,BillNo,Re,Dept2Code,MenuSuiteNo,WaiterID,Standard,OriginOrderPrice,MenuItemCName,TableNo)   Values   ('"   +   billMenuItemId   +   "','"   +   menuItemCode   +   "','"   +   orderQyt   +   "','"   +   orderQyt   +   "','"   +   menuItemPrice   +   "','"   +   menuItemStatus   +   "','"   +   orderTime   +   "',   '"+   billno   +",   re   +'"+   guestNeed   +   "','"   +   dept2   +   "','"   +   menuSuiteNo   +   "','"   +   waiter   +   "','"   +   standard   +   "','"   +   menuItemPrice   +   "','"   +   menuItemCName   +   "','"   +   tableno   +   "')", con1);
                    
    return objCommand.ExecuteNonQuery();
    这句报错,错误内容:
    ERROR   [42000]   [Sybase][ODBC   Driver]Syntax   error   or   access   violation 
      

  4.   

    一般像这种情况下容易出现插入值的类型与数据库中字段的类型不同这种错误
    所以楼主最好能跟踪下把objCommand的内容拿出来,然后放到查询分析器里去运行下看有什么错,这样就好改了
      

  5.   

    在测试一下
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
      

  6.   

    建议在查询分析器中执行一下,或者把赋值的SQL语句显示出来,看变量类型与字段类型是否一致.
      

  7.   

    应该是你的SQL有问题,跟踪一下,将SQL语句COPY下来后,到查询分析器中去执行一下。注意字段的类型
      

  8.   

    SQL语句有问题,仔细察看一下值与变量 可能不对应
      

  9.   

    10楼说的有道理,把最终生成的sql语句拿出来看看
      

  10.   

    我听明白了,谢谢大家。
    可惜我的数据库是ASA,没有查询管理器。
    我查值吧,应该是这类错
      

  11.   

    asa不是数据库,有可能是其他数据改名为此!如mdb库,在b/s程序中,通常改为asa、asp等,防下载!
      

  12.   

    Access里边日期类型的值应该用$Datetime$括起来,而不是用'Datetime'
      

  13.   

    LZ的[Re]這裡的語法有問題啊
    如果[Re]欄位為字符串類型就改為:
    "Insert   into   BillMenuItem   (BillMenuItemID,MenuItemCode,OrderQty,ChargeQty,MenuItemPrice,MenuItemStatus,OrderTime,BillNo,Re,Dept2Code,MenuSuiteNo,WaiterID,Standard,OriginOrderPrice,MenuItemCName,TableNo)   Values   ('"   +   billMenuItemId   +   "','"   +   menuItemCode   +   "','"   +   orderQyt   +   "','"   +   orderQyt   +   "','"   +   menuItemPrice   +   "','"   +   menuItemStatus   +   "','"   +   orderTime   +   "',   '"+   billno   + "','" +  re   +  "','" +   guestNeed   +   "','"   +   dept2   +   "','"   +   menuSuiteNo   +   "','"   +   waiter   +   "','"   +   standard   +   "','"   +   menuItemPrice   +   "','"   +   menuItemCName   +   "','"   +   tableno   +   "')" 
    如果[Re]是數字類型就改為:
    "Insert   into   BillMenuItem   (BillMenuItemID,MenuItemCode,OrderQty,ChargeQty,MenuItemPrice,MenuItemStatus,OrderTime,BillNo,Re,Dept2Code,MenuSuiteNo,WaiterID,Standard,OriginOrderPrice,MenuItemCName,TableNo)   Values   ('"   +   billMenuItemId   +   "','"   +   menuItemCode   +   "','"   +   orderQyt   +   "','"   +   orderQyt   +   "','"   +   menuItemPrice   +   "','"   +   menuItemStatus   +   "','"   +   orderTime   +   "',   '"+   billno   + "'," +  re   +  ",'" +   guestNeed   +   "','"   +   dept2   +   "','"   +   menuSuiteNo   +   "','"   +   waiter   +   "','"   +   standard   +   "','"   +   menuItemPrice   +   "','"   +   menuItemCName   +   "','"   +   tableno   +   "')"