string sql32 = "update jbsj set ztwz='" + Decimal.Parse(Row[3].ToString()) + "' where jh='" + Row[0] +"'and rq='"+ datatime.ConvertFrom(Row[1].ToString())+"' and cs="+ Decimal.Parse(Row[2].ToString()) 
jh,rq,cs是复合主键。其中rq是时间格式,cs是数字格式。

解决方案 »

  1.   

    where jh='" + Row[0] +"'??
      

  2.   

    ztwz 这个字段是数字型,就不用单引号了
      

  3.   

    设断点,把 sql32 的值读出来,放到sql里面验证一下就知道了啊
      

  4.   

    如果报SQL语法错误的话可以考虑以下两种可能:
    1)你的Row[0]中的内容含有SQL特殊字符,比如单引号
    2)如果你用的数据库是Access数据库,错误还可能发生在datatime.ConvertFrom(Row[1].ToString()),因为Access接受时间日期类型的数据时是用"#"来限定边界的