当前位置: 代码迷 >> ASP.NET >> 历程 Pr_Insert_User 没有参数,但却为该过程提供了参数
  详细解决方案

历程 Pr_Insert_User 没有参数,但却为该过程提供了参数

热度:495   发布时间:2013-02-25 00:00:00.0
过程 Pr_Insert_User 没有参数,但却为该过程提供了参数。
过程 Pr_Insert_User 没有参数,但却为该过程提供了参数。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.SqlClient.SqlException: 过程 Pr_Insert_User 没有参数,但却为该过程提供了参数。

源错误: 


行 27: cmd.Parameters.AddRange(pras);
行 28: conn.Open();
行 29: i = (int)cmd.ExecuteNonQuery();
行 30: conn.Close();
行 31: return i;
 

源文件: D:\Documents and Settings\student\桌面\Blog\Blog\DAL\SqlHelp.cs 行: 29 

堆栈跟踪: 


[SqlException (0x80131904): 过程 Pr_Insert_User 没有参数,但却为该过程提供了参数。]
  System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +98
  System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +82
  System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +346
  System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +3430
  System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +186
  System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +1272
  System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +334
  System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +407
  System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +149
  DAL.SqlHelp.ExecuteNonQuery(String Sql, SqlParameter[] pras) in D:\Documents and Settings\student\桌面\Blog\Blog\DAL\SqlHelp.cs:29
  DAL.UserDAL.Insert(UserModle usermodle) in D:\Documents and Settings\student\桌面\Blog\Blog\DAL\UserDAL.cs:85
  zhuchepage.btnOk_Click(Object sender, EventArgs e) in d:\Documents and Settings\student\桌面\Blog\Blog\zhuchepage.aspx.cs:50
  System.Web.UI.WebControls.Button.OnClick(EventArgs e) +96
  System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +116
  System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +31
  System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +32
  System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +72
  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3825

 

是数据库问题么 。还是什么问题啊 。 晕死了 , 求大神帮忙解疑啊 。


------解决方案--------------------------------------------------------
说的很明显了,意思就是说在数据库中的存储过程没有参数,你在程序中却加了参数进去。

2个办法解决:
1、给数据库中的存储过添加参数
2、去掉程序中传入的参数,也就是cmd.Parameters.AddRange(pras);并且要记得删除掉SQL语句中的参数