别急:
先测试一下Convert.ToInt32(Request.QueryString["ProviderID"])的返回值是多少,再到表中查看该值是否存在.
不用myCMD.CommandText=此串,而用一个标签,显示这一长串字符串,看是否有什么问题.

解决方案 »

  1.   

    Convert.ToInt32(Request.QueryString["ProviderID"])
    改为:
    Request.QueryString["ProviderID"].ToString()
      

  2.   

    调试一下,看看myCMD.CommandText的值是什么 
      

  3.   

    下断点,把myCMD.CommandText的值取出来直接到数据库去执行
    看是不是sql 语句的问题排除sql语句的问题后,再去找找看是不是你连接的用户没修改权限 再多说几句:楼主你的代码如果是写到产品里面去,绝对是噩梦
    首先:Contacter='" + this.txtContacter.Text.Trim() +
    对于txtContacter输入的内容不做过滤,安全性有问题,数据库容易被人注入,如果别人输入特殊字符,还会报错
    其次:更新数据库使用这种方式,sql代码和程序代码混在一起,极其难维护
    最后,程序风格非常恶劣
    哪怕你是用string.Format("update xxx set a={0},b={1}",str1,str2);也比你这个字符串加来加去的清晰得多如果是自己测试的代码或者啥的,那就无所谓了
      

  4.   

    断点,输出SQL语句看下吧这个代码看着实在头疼
      

  5.   

    先输出myCMD.CommandText 数据看看,然后拿到SQL里执行,看看报的什么错误
      

  6.   

    看着好乱,提个意见:
    用格式化字符串,myCMD.CommandText = string.Format("格式字符串",参数列表);
    如: string str=string.Format("{0}乘以{1}等于{2}",2,3,6);
      

  7.   

    我将那个UPDATE字符串输出来,结果是这样的:update BasicData_Provider set ProviderNumber='1001',ProviderName='海尔',Tel='0411-29017891',Contacter='OLAY',Address='',DetailSign=1,InUse=0,ChangeTime='2008-9-23 16:59:50',Changer='1002',Res='' where ProviderID=8 我一看就知道为什么不更新了,因为这里面的值全是原先页面加载时的原信息....
    现在我最不明白的地方就是,为什么我明明在文本框内输入别的信息,输出的语句还是这样的,
    也就是说--我的输入根本无效!!
    实在难为我也~~~请各位帮忙了!!!
      

  8.   

    我将那个UPDATE字符串输出来,结果是这样的: update BasicData_Provider set ProviderNumber='1001',ProviderName='海尔',Tel='0411-29017891',Contacter='OLAY',Address='',DetailSign=1,InUse=0,ChangeTime='2008-9-23 16:59:50',Changer='1002',Res='' where ProviderID=8 我一看就知道为什么不更新了,因为这里面的值全是原先页面加载时的原信息.... 
    现在我最不明白的地方就是,为什么我明明在文本框内输入别的信息,输出的语句还是这样的, 
    也就是说--我的输入根本无效!! 
    实在难为我也~~~请各位帮忙了!!!请大侠帮忙啊!
      

  9.   

    假设你在页面加载的时候设置页面信息的语句是this. txtProNO.Text = "aaaa"
    this. txtProName.Text = "bbbb"然后这些语句是写在Page_Load里面的你改成这样:if( ! IsPostBack )
    {
        this. txtProNO.Text = "aaaa"
        this. txtProName.Text = "bbbb"
    }就可以了