不会吧?看上去似乎没什么区别呢。建议:分别监视两种情况下strSql的内容。找出区别在什么地方。

解决方案 »

  1.   

    把两个strSql打印出来,就知道有什么不同。不可能一样的字符串有两种结果
      

  2.   

    先设断点看看,最后得到的完整语句是什么。如果你是本地SQl SERVER,可以用事件探测器看一下。
      

  3.   

    把两个strSql打印出来,就知道有什么不同。不可能一样的字符串有两种结果
      

  4.   

    设置断点
    看看sql是一样的吗?
      

  5.   

    string strSql="Update Admin Set AdminPurview_Others=@adminPurview_0thers,Purview=@pur";
    if(pwd.Length>0)
    {
    strSql+=",[Password]=@pwd";
    }
    strSql+=" Where ID="+AdminID;
    OleDbCommand myComm=new OleDbCommand(strSql,myConn);
    myComm.Parameters.Add("@adminPurview_0thers",OleDbType.Char,50);
    myComm.Parameters.Add("@AdminID",OleDbType.SmallInt,2);
    myComm.Parameters.Add("@pwd",OleDbType.SmallInt,2);
    if(pwd.Length>0)
    {
    myComm.Parameters.Add("@pwd",OleDbType.Char,50);
    myComm.Parameters["@pwd"].Value=pwd;
    }
    myComm.Parameters["@adminPurview_0thers"].Value=adminPurview_0thers;
    myComm.Parameters["@AdminID"].Value=AdminID;
    myComm.Parameters["@pwd"].Value=pur;他说我ADMINID没有默认值,把ADMINID屏蔽掉,他有说pur这个没有默认值,反正最后剩一个就正常..
    好象不能一次更新多个字段的值
      

  6.   

    把这一个生成的SQL语句防在的ACCESS里执行试试。
      

  7.   

    string strSql="Update Admin Set Purview=@pur,AdminPurview_Others=@Purview_Others Where ID=@ID";
    if(pwd!="")
    {
    strSql="Update Admin Set Purview=@pur,AdminPurview_Others=@Purview_Others,[Password]=@pwd Where ID=@ID";
    }密码就是改不了!~怎么回事啊,参数是一定传过去了
      

  8.   

    SQL语句写的有问题,应该多练
      

  9.   

    SQL语句写的有问题,应该多练