UPDATE    WH_HUIZONG
SET              details = '" 2009 "'
WHERE     (item = 'year'),
SET              details = 'dianshichang'
WHERE     (item = 'department')
提示","附近语法错误,请问怎样修改呢?

解决方案 »

  1.   

    你是什么数据库啊,两种条件的更新你得分为两个SQL语句来更新,哪里有这种逗号分割的连写法——自创也要有个限度。
      

  2.   

    我是个新手...一定要两个用两个语句来更新么?这是我的代码.如果变成多个语句,能在sting.Format里加成str1,str2,str3多个语句么?
     string str = "update WH_HUIZONG set details='" + b + "' where item=year,department='" + dw + "',zj_num=(select zj_num from FM_total where year='" + b + "'AND department= '" + dw + "'),yg_num=(select yg_num from FM_total where year='" + b + "'AND department= '" + dw + "'),score=(select score from FM_total where year='" + b + "'AND department= '" + dw + "')           
    SqlCommand cmd = new SqlCommand(string.Format(str), con);
      

  3.   

    UPDATE    WH_HUIZONG 
    SET              details = '" 2009 "' 
    WHERE    (item = 'year'), SET              details = 'dianshichang' 
    WHERE    (item = 'department') 
      你这个要改成
    UPDATE    WH_HUIZONG 
    SET              details = '" 2009 "' 
    WHERE    (item = 'year')UPDATE    WH_HUIZONG 
    SET              details = 'dianshichang' 
    WHERE    (item = 'department')
    /* 必须分开.   如果你的where条件一样的话*/
    UPDATE    WH_HUIZONG 
    SET              details = '" 2009 "' ,
                details = 'dianshichang',
                字段='值'--(最后一个要更新的字段的逗号要去掉) 
    WHERE    (item = 'department')
     
      

  4.   

    以后问关于数据库的一定要说是什么数据库,最好带上版本号SQL SERVERUPDATE    WH_HUIZONG
    SET     details =case when item='year' then '2009' else 'dianshichang' end
    ACCESSUPDATE  WH_HUIZONG
    SET     details =iif(item='year','2009','dianshichang')
    如果是其他数据库,我也不知道了
      

  5.   

    此写法不符合sql标准,不被任何现有数据库支持,鉴定完毕.
      

  6.   


    非常感谢!可是这就要写很多行update了,我把这些都放到了
    SqlCommand cmd = new SqlCommand(string.Format(str), con);里边,str只能代表一句话,我能在里边改成str1,str2,str3这样的形式么,还是要写多个这样的语句?
      

  7.   

    用exec执行字符串
    "exec('" + str + "')"
      

  8.   

    别在这种鸡毛蒜皮的小事上纠缠了,多写一句SQL语句又能怎么样?这又不会减慢你程序的执行速度,完全是感觉不到的东西
      

  9.   

    update wh_huizong set details = decode(item,'year','2009','dianshichang')(oracle)
      

  10.   

    非常感谢!可是这就要写很多行update了,我把这些都放到了 
    SqlCommand cmd = new SqlCommand(string.Format(str), con);里边,str只能代表一句话,我能在里边改成str1,str2,str3这样的形式么,还是要写多个这样的语句?
    --------------------------------------------------------
    一个str表示,多条命令用分号隔开就行了
      

  11.   

    很简单,你每次执行过cmd.ExecuteNonQuery()后,重新执行
    cmd.CommandText = str2;
    然后再次cmd.ExecuteNonQuery()进行更新,
    有多少句SQL语句就改变多少次CommandText后执行cmd.ExecuteNonQuery()更新。另外这是是针对通用数据库而言的,如果你是SQLSERVER里的操作(好像就是,不然怎么用SqlCommand),那么你可以多条语句写在一起,各个语句之间封号隔开,然后一次性赋值给cmd.CommandText后提交更新。
      

  12.   

    第二个逗号去掉,用两个update语句完成
      

  13.   

    您能具体说一下怎么写么?
    SqlCommand cmd1 = new SqlCommand(string.Format(str), con);
    SqlCommand cmd2 = new SqlCommand(string.Format(str), con);
    ...
    请问是这么写么?