“/aspnet”应用程序中的服务器错误。
--------------------------------------------------------------------------------操作必须使用一个可更新的查询。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。源错误: 
行 10:  string add_str="update student set 姓名='龙人' where 学号=2";
行 11:  OleDbCommand comm_3=new OleDbCommand(add_str,conn);
行 12:  comm_3.ExecuteNonQuery();
行 13:  Add_str.Text=add_str;///;Convert.ToString(conn.State)
行 14:  }
 源文件: F:\asP_net\conn.aspx    行: 12 堆栈跟踪: 
[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() +67
   ASP.conn_aspx.page_load(Object sender, EventArgs e) in F:\asP_net\conn.aspx:12
   System.Web.UI.Control.OnLoad(EventArgs e) +67
   System.Web.UI.Control.LoadRecursive() +35
   System.Web.UI.Page.ProcessRequestMain() +731 
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573 
代码 如下
<%@ Import NameSpace="System.Data"%>
<%@ Import NameSpace="System.Data.OleDb"%>
<script language="c#" runat="server">
public void page_load(object sender,EventArgs e)
{
OleDbConnection conn=new OleDbConnection();
conn.ConnectionString="Provider=Microsoft.Jet.OlEDB.4.0;Data Source="+Server.MapPath("test.mdb");
conn.Open();
try{
string add_str="update student set 姓名='龙人' where 学号=2";
OleDbCommand comm_3=new OleDbCommand(add_str,conn);
comm_3.ExecuteNonQuery();
Add_str.Text=add_str;///;Convert.ToString(conn.State)
}
// catch(Exception ex)
// {
// Add_str.Text="数据库连接出错";
// }
///Data_bind();
finally
{
conn.Close();
}
Data_bind();
}
public void Data_bind()
{
OleDbConnection conn=new OleDbConnection();
conn.ConnectionString="Provider=Microsoft.Jet.OlEDB.4.0;Data Source="+Server.MapPath("test.mdb");
conn.Open();
OleDbCommand comm=new OleDbCommand("select * from student",conn);
OleDbDataReader dr=comm.ExecuteReader();
student_info.DataSource=dr;
student_info.DataBind();
///comm.Close();
///OleDbCommand comm_1=new OleDbCommand("select count(*) from student",conn);
///Double dr_1=Convert.ToDouble(comm_1.ExecuteScalar());///用于进行统计
avg_cou.Text="总共有"+(dr.FieldCount-1)+"位学生";
dr.Close();
///comm_1.Close();
conn.Close();
}
</script>
<form runat="server">
<asp:DataGrid ID="student_info" runat="server"/>
<asp:Label ID="avg_cou" runat="server"/><br />
<asp:Label ID="Add_str" runat="server"/><br />
姓名:<asp:TextBox ID="stu_name" runat="server"/><br />
语文:<asp:TextBox ID="stu_chinese" runat="server"/><br />
数学:<asp:TextBox ID="Stu_math" runat="server"/><br />
外语:<asp:TextBox ID="Stu_english" runat="server"/><br  />
</form>

解决方案 »

  1.   

    conn.connectionstring//有问题
    改称这样试试:
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;User Id=admin;Password=;" 
      

  2.   

    你是用Access数据库的吧?
    那是因为你的数据库文件没有写的权限啊,你对准access数据看属性,然后安全那里分配一下everyone都有写的权限就行了。
      

  3.   

    给当前工程目录添加一个ASPNET用户。并把完全控制给于它!!!!!这样就能解决了!!