private void bind()
{
string strcnn=System.Configuration.ConfigurationSettings.AppSettings["strcnn"];
OleDbConnection cnn=new OleDbConnection(strcnn);
OleDbCommand cmd,cmd2;
cmd=new OleDbCommand("select * from site_news where newsid=" + Int32.Parse(Request.QueryString["newsid"]),cnn);
OleDbDataReader dr;
// try
// {==========================
注明:我把下面这两句注析掉就没事了,很明显是更新语句不起作用.在我的机子上好好的,在别人的机子为什么会这样?请大家帮帮我!
cnn.Open();
// cmd2=new OleDbCommand("update site_news set hit=hit+1 where newsid=" + Int32.Parse(Request.QueryString["newsid"]),cnn);
// cmd2.ExecuteNonQuery();
dr=cmd.ExecuteReader();
if(dr.Read())
{
title.Text=dr.GetString(1);
ttime.Text=dr.GetDateTime(5).ToString();
content.Text=dr.GetString(2);
hit.Text=dr.GetInt32(4).ToString();
if(dr.GetString(3).Trim().Length!=0)
{
download.Text="<a href=news_download.aspx?newsid=" + int.Parse(Request.QueryString["newsid"]) + ">点击下载附件</a>";
}
}

// }
// catch(Exception E)
// {
// Response.Write(E.Message);
// }
// finally
// {
cnn.Close();
// }
}===================================
下面是错误提示:
===========================
“/sale”应用程序中的服务器错误。
--------------------------------------------------------------------------------操作必须使用一个可更新的查询。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。源错误: 
行 117: cnn.Open();
行 118: cmd2=new OleDbCommand("update site_news set hit=hit+1 where newsid=" + Int32.Parse(Request.QueryString["newsid"]),cnn);
行 119: cmd2.ExecuteNonQuery();
行 120: dr=cmd.ExecuteReader();
行 121: if(dr.Read())
 源文件: e:\交易平台\newsview.aspx.cs    行: 119 堆栈跟踪: 
[OleDbException (0x80004005): 操作必须使用一个可更新的查询。]
   System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr)
   System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
   System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
   System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
   System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
   sale.newsview.bind() in e:\交易平台\newsview.aspx.cs:119
   sale.newsview.Page_Load(Object sender, EventArgs e) in e:\交易平台\newsview.aspx.cs:48
   System.Web.UI.Control.OnLoad(EventArgs e)
   System.Web.UI.Control.LoadRecursive()
   System.Web.UI.Page.ProcessRequestMain() 

解决方案 »

  1.   

    你的ACCESS数据库权限问题1.看看你的数据库是不是设置了只读。。2.如果没有设置为只读,你右键你的数据库,然后“属性”里面有“安全”,设置USERS权限为可读可写。就可以了
      

  2.   

    这个错误,明显是在ACCESS数据库文件本身的权限上面.
    你的机器可能是FAT32格式,而别人的机器上是NTFS格式,你必须将数据库文件的"修改"权限授予aspnet用户.
    请先尝试.
      

  3.   

    给文件夹everyone帐号添加读写权限
      

  4.   

    string strcnn=System.Configuration.ConfigurationSettings.AppSettings.Get("strcnn");
      

  5.   

    在请求的同时,是不是Access数据库处于打开状态,这样无法更新的.而如果不是上述情况,那就应该是你的数据库没有写权限.可以给数据库everyone的所有权限试试...
      

  6.   

    应该是权限的问题设置数据库文件为everyone访问