用asp.net(c#)连接access之后读数据正常
但写数据始终出错源程序如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.OleDb"%><%@ Page Language="c#" runat="server" debug=true%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>用户注册</title>
</head><h1>用户注册</h1>
<hr>
<body link=bbrrbb alink=rrggrr vlink=ggbbgg>
<%
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";
strConnection+=@"Data Source=D:\Program Files\html\客户信息.mdb"; string strSQL="insert into usr(id,code,property) values('usr','usr','g')"; OleDbConnection objConnection=new OleDbConnection(strConnection);
OleDbCommand objCommand=new OleDbCommand(strSQL,objConnection);
objConnection.Open();
objCommand.ExecuteNonQuery();
objConnection.Close();
con_open.Text="connection opened successfull!";
%>
<asp:label ID="con_open" runat="server"/><br/>
</body>
</html>浏览器显示如下:
“/aspx”应用程序中的服务器错误。
--------------------------------------------------------------------------------操作必须使用一个可更新的查询。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。源错误:
行 30:
行 31: objConnection.Open();
行 32: objCommand.ExecuteNonQuery();
行 33: objConnection.Close();
行 34: con_open.Text="connection opened successfull!";
源文件: D:\Program Files\html\用户注册.aspx 行: 32 堆栈跟踪:
[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.用户注册_aspx.__Render__control1(HtmlTextWriter __output, Control parameterContainer) in D:\Program Files\html\用户注册.aspx:32
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +27
System.Web.UI.Control.Render(HtmlTextWriter writer) +7
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
System.Web.UI.Page.ProcessRequestMain() +1929
但写数据始终出错源程序如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.OleDb"%><%@ Page Language="c#" runat="server" debug=true%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>用户注册</title>
</head><h1>用户注册</h1>
<hr>
<body link=bbrrbb alink=rrggrr vlink=ggbbgg>
<%
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";
strConnection+=@"Data Source=D:\Program Files\html\客户信息.mdb"; string strSQL="insert into usr(id,code,property) values('usr','usr','g')"; OleDbConnection objConnection=new OleDbConnection(strConnection);
OleDbCommand objCommand=new OleDbCommand(strSQL,objConnection);
objConnection.Open();
objCommand.ExecuteNonQuery();
objConnection.Close();
con_open.Text="connection opened successfull!";
%>
<asp:label ID="con_open" runat="server"/><br/>
</body>
</html>浏览器显示如下:
“/aspx”应用程序中的服务器错误。
--------------------------------------------------------------------------------操作必须使用一个可更新的查询。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。源错误:
行 30:
行 31: objConnection.Open();
行 32: objCommand.ExecuteNonQuery();
行 33: objConnection.Close();
行 34: con_open.Text="connection opened successfull!";
源文件: D:\Program Files\html\用户注册.aspx 行: 32 堆栈跟踪:
[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.用户注册_aspx.__Render__control1(HtmlTextWriter __output, Control parameterContainer) in D:\Program Files\html\用户注册.aspx:32
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +27
System.Web.UI.Control.Render(HtmlTextWriter writer) +7
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
System.Web.UI.Page.ProcessRequestMain() +1929
解决方案 »
- vs2010 打开项目,提示“未能正确加载解决方案中的一个或多个项目”
- cookie能否这样存
- Accsee中类型问题
- 高分请教 DataList分页 在页面跳转时的问题??
- 求助:如何保存指定区域内的图片!
- 向hhfh(黑尾砂狐)求助,在线等
- 页面刷新时,如何实现script脚本与cs代码的数据传递
- 怎么我的footertemplete也分格,里面的东西全挤在了最右边的格内???????
- “Student.StudentSystemUI”已定义了一个名为“InitializeComponent”的具有相同参数类型的成员
- ------------恭喜思归正式进入.NET开发------------
- 特殊字符的处理
- 菜鸟问题:怎么让弹出的对话框的“确定”按钮是英文的,也就是让确定变成“OK”急!急!急!
问题分析:分析一下用户访问的情况,用户请求web页面,服务器使用系统内置的的IIS_WPG组的帐户来访问Access数据库,若IIS_WPG组的帐户没有Access数据库文件的"修改"权限,就会产生这个异常"IIS_WPG"用户组是用于访问和管理IIS信息的内置帐户,默认情况下对IIS中虚拟目录的文件只有"读取"权限.解决方法:在Access数据库文件上单击右键->属性->安全单击添加,在文本框中输入"IIS_WPG",单击确定,给IIS_WPG设置权限,选中"允许写入",确定OK!---------------------------------------------
有时查不到安全选项卡怎么办?找到数据文件夹所在地,在窗口上找到工具-->文件夹选项-->查看-->使用简单文件共享(推荐)的勾去掉,
然后按上面写的做即可
-------------------------------
方法二:在ervryone 中给读权限,即可
using System.Data.OleDb;class OleDbTest{public static void Main()
{
//创建数据库连接
OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\db1.mdb");//创建command对象并保存sql查询语句
OleDbCommand aCommand = new OleDbCommand("select * from emp_test", aConnection);
try
{
aConnection.Open();//创建datareader 对象来连接到表单
OleDbDataReader aReader = aCommand.ExecuteReader();
Console.WriteLine("This is the returned data from emp_test table");//循环遍历数据库
while(aReader.Read())
{
Console.WriteLine(aReader.GetInt32(0).ToString());
}//关闭reader对象
aReader.Close();//关闭连接,这很重要
aConnection.Close();
}//一些通常的异常处理
catch(OleDbException e)
{
Console.WriteLine("Error: {0}", e.Errors[0].Message);
}
}
}