string QueryString = @"Update  num set id=1,numm=numm+1 where (id=1)";
OleDbConnection myConnection = new OleDbConnection(@"我的连接字符串");
OleDbCommand myCommand = new OleDbCommand(QueryString,myConnection);
myCommand.CommandType = CommandType.Text;
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();就这么简单的代码,执行到ExecuteNonQuery()时老出现Operation must use an updateabl
e query异常,不解,SQL语句没有问题,连接字符串没有问题。
望高手帮忙

解决方案 »

  1.   

    string QueryString = @"Update  num set id=1,numm=numm+1 where (id=1)";
    OleDbConnection myConnection = new OleDbConnection(@"我的连接字符串");
    OleDbCommand myCommand = new OleDbCommand(QueryString,myConnection);
    myCommand.CommandType = CommandType.Text;
    myCommand.CommandText=QueryString;/////注意这一句myConnection.Open();
    myCommand.ExecuteNonQuery();
    myConnection.Close();
      

  2.   

    set id=1 where id=1
    ?
      

  3.   

    to smilnet(笨笨):
    根本不需要
    myCommand.CommandText=QueryString;
    因为
    OleDbCommand myCommand = new OleDbCommand(QueryString,myConnection);
    就已经给myCommadn.CommandText赋值不。
    所以按你的说法根本不能解决问题to vasun(新帐号):
    这个SQL语句只是我用来试着玩的,无实际意义,所以不必见怪 :)
      

  4.   

    你能不能把它改一下@"Update  num set id=1,numm=numm+1 where (id=1)";不行再看看是什么原因,到查询分析器运行一下。
      

  5.   

    我也试着换过别的sql 语句,不成。
    这个SQL 语句在Access的查询中可以正常运行
      

  6.   

    num是表名,id和numm是这个表的两个字段都是integer型
      

  7.   


    myConnection.Open();
    放到前面。myConnection.Open();
    OleDbCommand myCommand = new OleDbCommand(QueryString,myConnection);
      

  8.   

    to vasun(新帐号) :
    你这个就更离谱了。
    就算用你的方法,依然不行
      

  9.   

    自己搞定了,原来是access数据库文件权限的问题