我做了个网站在自己的服务器上没问题了,现在我传到另一台服务器上之前的网页可以打开,当点击图片进入具体的查看的页面时就显示:“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------操作必须使用一个可更新的查询。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
[OleDbException (0x80004005): 操作必须使用一个可更新的查询。]
   System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) +41
   System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +174
   System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +92
   System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +65
   System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +112
   System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +66
   freezone.photo.photo.Page_Load(Object sender, EventArgs e) +646
   System.Web.UI.Control.OnLoad(EventArgs e) +67
   System.Web.UI.Control.LoadRecursive() +35
   System.Web.UI.Page.ProcessRequestMain() +750 
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.2032; ASP.NET 版本:1.1.4322.2032 郁闷死我了 为什么会这样啊
这个页面对数据库操作有两条语句 一个是SELECT 另一个是UPDATE。为什么啊??

解决方案 »

  1.   

    这个问题是典型的 microsoft access 权限问题了。
    你右击 *.mdb 文件,把它的权限改为 everyone 完全控制就好了。
      

  2.   

    肯定是SQL语句有问题,贴一点代码!
      

  3.   

    还有一种可能是你在程序执行的时候,用 Microsoft Access 工具打开了你的数据库文件。
      

  4.   

    首先,数据库文件并没有打开,然后我权限也设置了,但是还是一样的结果。
    下面是代码段:
    private void Page_Load(object sender, System.EventArgs e)
    {
             // 在此处放置用户代码以初始化页面
             photoid = Request.Params["photo_id"];
    string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("\\data\\freezone.aspx");
    OleDbConnection conn = new OleDbConnection(conStr);
    conn.Open();
    try
    {
    String strCom= "SELECT * FROM photo where photo_id="+photoid;
    ds= new DataSet();
    OleDbDataAdapter da = new OleDbDataAdapter(strCom,conn);
    da.Fill(ds,"photo");
    dr = ds.Tables["photo"].Rows[0];
    }
    finally
    {
    conn.Close();
    }
    long a = long.Parse(dr["photo_clicked"].ToString()) + 1;
    string sql= "UPDATE photo SET photo_clicked="+a+" WHERE photo_id="+photoid;
    DataAccess dataAccess = new DataAccess();
    OleDbConn = dataAccess.GetConnection();
    OleDbConn.Open();
    try
    {
    dataAccess.ExecuteNonQuery(sql);
    }
    finally
    {
    OleDbConn.Close();
    }
    if(!Page.IsPostBack)
    {
    if(Session["UserName"] == null)
    {
    lbnRegister.Visible = true;
    lbnEdit.Visible = false;
    lbnAdmin.Visible = false;
    }
    else
    {
    lbnRegister.Visible = false;
    lbnEdit.Visible = true;
    Admin admin = new Admin();
    if(admin.AdminExists(Session["UserName"].ToString()))
    {
    lbnAdmin.Visible = true;
    }
    else
    {
    lbnAdmin.Visible = false;
                 }
    }
    BindData();
    System.Drawing.Image img = System.Drawing.Image.FromFile(HttpContext.Current.Server.MapPath("\\upload\\"+dr["photo_route"].ToString()));  
    image.ImageUrl = "../upload/"+dr["photo_route"].ToString();
    int width = img.Width;
    int height = img.Height;
    if(width > 500)
    {
    image.Width = 500
    image.Height = height*500/width;
    }
    }
    }
    有点乱~~~~
      

  5.   

    这是下一段;
    public void BindData()
    {
    string sql = "SELECT * FROM photo ORDER BY photo_clicked DESC";
    DataSet ds = new DataSet();
    DataAccess das = new DataAccess();
    OleDbConn = das.GetConnection();
    OleDbConn.Open();
    try
    {
    OleDbDataAdapter da = new OleDbDataAdapter(sql,OleDbConn);
    da.Fill(ds, 0, 5, "top");
    top.DataSource = ds;
    top.DataMember = "top";
    top.DataBind();
    }
    finally
    {
    OleDbConn.Close();
    }
    }