全部代码:
<%@ Page Language="C#" Debug="true" %><%@ Import Namespace="System.Data.OleDb" %><script language="C#" runat="Server">
public void Page_Load(Object src, EventArgs e)
{
string str1 = Request.QueryString["datatime"];
string str2 = Request.QueryString["dataname"];
string str3 = Request.QueryString["datainfo"];
OleDbConnection MyConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + HttpContext.Current.Server.MapPath("../data/#zjk.mdb") +"");
OleDbCommand MyComm = new OleDbCommand("insert into Diary(datatime,dataname,datainfo) values('" + str1 + "','" + str2 + "','" + str3 + "')", MyConn);
MyConn.Open();
MyComm.ExecuteNonQuery();
Response.Write("ok");
MyConn.Close();
}
</script>扔iis里 运行在
行 14: MyComm.ExecuteNonQuery(); 报错:操作必须使用一个可更新的查询。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。
access俺也给他everyone 权限了 也没有非空值
俺也不知道是俺哪写错了 还是俺眼花了 ~
怎么改都不好使捅咕3个小时了 妈的
<%@ Page Language="C#" Debug="true" %><%@ Import Namespace="System.Data.OleDb" %><script language="C#" runat="Server">
public void Page_Load(Object src, EventArgs e)
{
string str1 = Request.QueryString["datatime"];
string str2 = Request.QueryString["dataname"];
string str3 = Request.QueryString["datainfo"];
OleDbConnection MyConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + HttpContext.Current.Server.MapPath("../data/#zjk.mdb") +"");
OleDbCommand MyComm = new OleDbCommand("insert into Diary(datatime,dataname,datainfo) values('" + str1 + "','" + str2 + "','" + str3 + "')", MyConn);
MyConn.Open();
MyComm.ExecuteNonQuery();
Response.Write("ok");
MyConn.Close();
}
</script>扔iis里 运行在
行 14: MyComm.ExecuteNonQuery(); 报错:操作必须使用一个可更新的查询。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。
access俺也给他everyone 权限了 也没有非空值
俺也不知道是俺哪写错了 还是俺眼花了 ~
怎么改都不好使捅咕3个小时了 妈的
string str2 = Request.QueryString["dataname"].ToString();
string str3 = Request.QueryString["datainfo"].ToString();
OleDbConnection MyConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + HttpContext.Current.Server.MapPath("../data/#zjk.mdb") +"");
OleDbCommand MyComm = new OleDbCommand("insert into Diary(datatime,dataname,datainfo) values(#" + str1 + "#,'" + str2 + "','" + str3 + "')", MyConn);
MyConn.Open();
MyComm.ExecuteNonQuery();
Response.Write("ok");
MyConn.Close();
以前我也经常碰到此问题!
一容易SQL注入
二SQL语句很容易出错(如果是日期类型的话,是要加##的)
所以用OLEDBPARAMETERS的参数来写。这些错误就可以避免
既然用了.NET就把它用好,要不然微软
就白开发它了
可能是这种情况