必须使用可更新的查询?????
在调试的时候这个函数出现了错误,本来是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 允许写入