我是用asp.net连access,语言是c#,应该在insert语句上有毛病
代码如下:
private void submit_Click(object sender, System.EventArgs e)
{
conn.Open();
string s;
s="Insert into new(new_title) values('"+title.Text+"')";
cmd.CommandText=s;
cmd.ExecuteNonQuery();
conn.Close();
}
出来的结果是“/exam_net”应用程序中的服务器错误。
--------------------------------------------------------------------------------操作必须使用一个可更新的查询。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。源错误:
行 68: s="Insert into new(new_title) values('"+title.Text+"')";
行 69: cmd.CommandText=s;
行 70: cmd.ExecuteNonQuery();
行 71: conn.Close();
行 72: }
源文件: c:\work\aspx\exam_net\edit_news.aspx.cs 行: 70 堆栈跟踪:
[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()
exam_net.add_news.submit_Click(Object sender, EventArgs e) in c:\work\aspx\exam_net\edit_news.aspx.cs:70
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()从asp到asp.net一路过来,每次最让我郁闷的问题都是些莫名其妙的sql语句问题,真气死了,顺便请教各位大侠下:
你们写sql语句是如何避免这些该死的错误的,或者说写SQL语句要注意什么
代码如下:
private void submit_Click(object sender, System.EventArgs e)
{
conn.Open();
string s;
s="Insert into new(new_title) values('"+title.Text+"')";
cmd.CommandText=s;
cmd.ExecuteNonQuery();
conn.Close();
}
出来的结果是“/exam_net”应用程序中的服务器错误。
--------------------------------------------------------------------------------操作必须使用一个可更新的查询。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。源错误:
行 68: s="Insert into new(new_title) values('"+title.Text+"')";
行 69: cmd.CommandText=s;
行 70: cmd.ExecuteNonQuery();
行 71: conn.Close();
行 72: }
源文件: c:\work\aspx\exam_net\edit_news.aspx.cs 行: 70 堆栈跟踪:
[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()
exam_net.add_news.submit_Click(Object sender, EventArgs e) in c:\work\aspx\exam_net\edit_news.aspx.cs:70
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()从asp到asp.net一路过来,每次最让我郁闷的问题都是些莫名其妙的sql语句问题,真气死了,顺便请教各位大侠下:
你们写sql语句是如何避免这些该死的错误的,或者说写SQL语句要注意什么
//sql语句的问题,new是关键字,不能直接当表名使用,加个中括号应该可以
s="Insert into [new] (new_title) values('"+title.Text+"')"
//不过最好把表名改了,不要使用系统的关键字作为表名或字段名。