首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

必须使用可更新的查询?该怎么解决

2012-01-29 
必须使用可更新的查询?????在调试的时候这个函数出现了错误,本来是SQL数据库的,没有错误,改成ACCEESS数据

必须使用可更新的查询?????


在调试的时候这个函数出现了错误,本来是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数据库,那么要怎样改呢?


[解决办法]
改为OleDbCommand Click = new OleDbCommand( "UPDATE News SET Hits = Hits + 1 WHERE NewsID = "+id.ToString(), myconn);

[解决办法]
不具备mdb文件所在的目录的写权限。
[解决办法]
你的ACCEESS数据库肯定是存放在NTFS分区,找到存放ACCEESS数据库的文件夹,给予Everyone写入权限(其实只要给Internet来宾帐户写入权限就够了)。
[解决办法]
MDB文件的更改权限没有
[解决办法]
原因1:看看你的数据库文件有没有写权限

原因2:你导成access表的时候是不是主键值丢了(从sql server 往 access 表里导的时候不小心就会丢失主键)?如果丢了的话,打表数据表重新设置一下。
[解决办法]
为表建立主键,并使用主键做为更新的条件.
[解决办法]
将你的ACCEESS数据库的文件夹 属性-> 安全 -> Everyone 允许写入

热点排行