我是用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语句要注意什么
 

解决方案 »

  1.   

    http://community.csdn.net/Expert/TopicView3.asp?id=5062130
      

  2.   

    s="Insert into new(new_title) values('"+title.Text+"')"
    //sql语句的问题,new是关键字,不能直接当表名使用,加个中括号应该可以
    s="Insert into [new] (new_title) values('"+title.Text+"')"
    //不过最好把表名改了,不要使用系统的关键字作为表名或字段名。