因为觉得问题不在别处,似乎是session的问题,所以代码就写一句给大家判断。cm.commandtext="update pwd set 密码='" & txtNewPwd1.text &"' where 名称="+session("CN")
以上语句这样写就出错,但我要给“名称”字段指定具体的值就不会错,比如这样写:
cm.commandtext="update pwd set 密码='" & txtNewPwd1.text &"' where 名称='XX公司'"
密码就修改成功,到底是怎么回事?

解决方案 »

  1.   

    可以保证出错时session并没有失效
      

  2.   

    应该是 SET 密码 这句,把密码的值用一个变量试试
      

  3.   

    你肯定是session没有值,或是类型不对.
    你把你的语句修改如下:
    string sql = ="update pwd set 密码='" & txtNewPwd1.text &"' where 名称="+session("CN");
    this.Response.Write(sql);
    this.Response.End();
    把SQL语句打印出来,看一下问题何在.
      

  4.   

    我也试过了,将set 密码 这里换成常量后面还用session也是出错,只有把session部分换成常量运行通过。
      

  5.   

    你写错了,在sql中字符串对比要加单引号
    cm.commandtext="update pwd set 密码='" & txtNewPwd1.text &"' where 名称='"+session("CN")
    +"'"
      

  6.   

    sql语句错了
    sql语句中字符串对比要加单引号
    这样改应该就可以了
    cm.commandtext="update pwd set 密码='" & txtNewPwd1.text &"' where 名称='"+session("CN")+"'"
      

  7.   

    我照楼上老大那样将SQL语句打印出来了,也显示没问题啊,困扰~~~~
    update pwd set 密码='1234' where 应商名称=XX市五洋贸易有限公司
      

  8.   

    应该是update pwd set 密码='1234' where 应商名称='XX市五洋贸易有限公司'
    少了单引号。
      

  9.   

    update pwd set 密码='1234' where 名称=XX市五洋贸易有限公司这句话是我response.write后在网页上显示出来的
      

  10.   

    你这个sql:
    update pwd set 密码='1234' where 应商名称=XX市五洋贸易有限公司 
    打印出来当然没问题
    但是执行就不行了因为你的“应商名称”字段是字符串型。所以XX市五洋贸易有限公司 
    必须加单引号。
    你把源程序改为
    cm.commandtext="update pwd set 密码='" & txtNewPwd1.text &"' where 名称='" & session("CN") & "'"
    再执行就可以了
      

  11.   

    你写错了,在sql中字符串对比要加单引号
    cm.commandtext="update pwd set 密码='" & txtNewPwd1.text &"' where 名称='"+session("CN").ToString()+"'"