关于access数据库的insert语句问题

xnfriday 2008-07-16 11:41:23
小弟今日在连接数据库的时候遇到了麻烦,好难啊……弄了好久没有弄出来,望过路的高手赐教
strSQL = "INSERT INTO school(s_name,s_pid,s_cid,s_erea,s_type,s_num,s_zip,s_http,s_delflag,s_who)VALUES('";
strSQL += txtSchname.Text + "',";
strSQL += Page.Request["pid"].ToString() + ",";
strSQL += Page.Request["cid"].ToString() + ",'"+txtScherea.Text+"',";
strSQL += Page.Request["typ"]+",0,'";
strSQL += txtSchzip.Text + "','" + txtSchhttp.Text + "',0," + Session["uid"].ToString() + ")";

cn = new OleDbConnection(strConn);
cmd = new OleDbCommand(strSQL, cn);
cn.Open();
cmd.ExecuteNonQuery();
cmd.Dispose();



至少一个参数没有被指定值。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。

源错误:


行 68: cmd = new OleDbCommand(strSQL, cn);
行 69: cn.Open();
行 70: cmd.ExecuteNonQuery();
行 71: cmd.Dispose();
行 72:


源文件: g:\web\E-book\Find_c2.aspx.cs 行: 70

堆栈跟踪:


[OleDbException (0x80040e10): 至少一个参数没有被指定值。]
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +267
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +192
System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +48
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +106
System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +108
Find_c12.btnNext_Click(Object sender, EventArgs e) in g:\web\E-book\Find_c2.aspx.cs:70
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746


...全文
187 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xnfriday 2008-07-18
  • 打赏
  • 举报
回复
很感谢上面的三个人……
小弟我刚学,什么都不懂,还望各位指教……
向上面说的,access的查询窗口是怎么用的,我也不知道……
慢慢尝试,好像也尝试不出来,可以仔细点吗?
比如在access那里怎么查询?拜谢了……
bwangel 2008-07-17
  • 打赏
  • 举报
回复
赞同楼上的看法,这种最常见的错误应该可以很快找到原因,而不是浪费时间在这里发贴.


最简单的方法,输出你的strSQL最后的内容,在accesss的查询窗口里运行一下就知道错在哪了.
你的这种请况很可能是某个变量的值应该为数字,但是却是非数字字符,导致access以为是参数而造成的.
rangeon 2008-07-17
  • 打赏
  • 举报
回复
samsung的高手发言了,学习ing...
Jinglecat 2008-07-17
  • 打赏
  • 举报
回复
1.
学会基本的调试技能!!!

2.
strSQL += txtSchzip.Text + "','" + txtSchhttp.Text + "',0," + Session["uid"].ToString() + ")";

Response.Write(strSQL); // 这里输出 sql 语句,比较检查是否字段都全了

cn = new OleDbConnection(strConn);

62,075

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧