遇到一个怪现象:
string strUpdate = "update ProductClass1 set ClassName='dddkkk' where Class1ID="+txtID.Text;
其中Class1ID是int类型
但是执行结果ClassName总是没有被更新,还是原来的值
如果把where条件去掉,更新就可以的
这个句子哪里写错了吗
望指教,谢谢

解决方案 »

  1.   

    断点调试一下 看strUpdate的值是什么
      

  2.   

    你的txtID.Text里面是不是有空格之类的字符
    txtID.Text.trim()
      

  3.   

    一个办法是用在更新前用正则表达式限制textID的输入值不能为空和非int数据
    第二个办法是txtID.Text在加入strUpdate前进行判断是否为空或非int数据,并去掉空格,即txtID.Text.trim()
      

  4.   

    从你的这句话看
    但是执行结果ClassName总是没有被更新,还是原来的值
    如果把where条件去掉,更新就可以的问题就是出在where这里
      

  5.   

    还有你看看数据库中是否有Class1ID等于txtID.Text的数据,如果没有,当然不会更新了
      

  6.   


    Class1ID="+int.Parse(txtID.Text);
    验证,转成int类型比较好
      

  7.   

    问题找到了,因为txtID.text来源于数据表中某个字段
    因此取此字段值的操作在page_load中一定要放在! IsPostBack中
    因为点按钮前是有值的,但点完按钮txtID中其实是没有值的
    这个下次一定要注意了,也学了一招
    谢谢各位
      

  8.   

    一定要强转类型的,txtID是string类型的,classid 是INT 的肯定不行的