在调试的时候这个函数出现了错误,本来是SQL数据库的,没有错误,改成ACCEESS数据库后出现了“必须使用可更新的查询”的异常错误 OleDbConnection myconn = conn();
        myconn.Open();
        
        OleDbCommand Click = new OleDbCommand("UPDATE News SET Hits = (SELECT Hits+1 FROM News WHERE NewsID ="+id.ToString()+" ) WHERE NewsID = "+id.ToString(), myconn);
        Click.ExecuteNonQuery();
        OleDbCommand GetOne = new OleDbCommand("SELECT * FROM News WHERE NewsID ="+id.ToString(), myconn);
        OleDbDataReader OneNews = GetOne.ExecuteReader(CommandBehavior.CloseConnection);        return OneNews;错误提示是《Click.ExecuteNonQuery();》中,感觉应该是我写的更新语句不能适合ACCESS数据库,那么要怎样改呢?

解决方案 »

  1.   

    改为OleDbCommand Click = new OleDbCommand("UPDATE News SET Hits = Hits + 1 WHERE NewsID = "+id.ToString(), myconn);
      

  2.   

    不具备mdb文件所在的目录的写权限。
      

  3.   

    你的ACCEESS数据库肯定是存放在NTFS分区,找到存放ACCEESS数据库的文件夹,给予Everyone写入权限(其实只要给Internet来宾帐户写入权限就够了)。
      

  4.   

    原因1:看看你的数据库文件有没有写权限原因2:你导成access表的时候是不是主键值丢了(从sql server 往 access 表里导的时候不小心就会丢失主键)?如果丢了的话,打表数据表重新设置一下。
      

  5.   

    将你的ACCEESS数据库的文件夹 属性-> 安全 -> Everyone 允许写入 
      

  6.   

    如 yumiaojin()  所言,现在好了可以正常浏览了。不是写权限的问题,因为我的管理界面可以添加消息