日期:2014-05-17  浏览次数:20609 次

奇怪的问题:同样的函数,在两个VS2010解决方案中表现不一样
是向数据库插入相同的数据,数据库也相同,数据表也相同。
一个正常,成功返回,另一个提示如下信息:
列名或所提供值的数目与表定义不匹配。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.SqlClient.SqlException: 列名或所提供值的数目与表定义不匹配。

源错误: 


行 107: if (pars != null)
行 108: cmd.Parameters.AddRange(pars);
行 109: return cmd.ExecuteNonQuery();
行 110: }
行 111: }
 

源文件: D:\Glenn\ERPs -FRAME4\ERP.DAL\DBHelper.cs 行: 109 

堆栈跟踪: 


[SqlException (0x80131904): 列名或所提供值的数目与表定义不匹配。]
  System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +212
  System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +245
  System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1099
  System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) +2858575
  System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +470
  System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +182
  ERP.DAL.DBHelper.GetExcuteNonQuery(String cmdTxt, SqlParameter[] pars) in D:\Glenn\ERPs -FRAME4\ERP.DAL\DBHelper.cs:109
  ERP.DAL.DBHelper.GetExcuteNonQuery(String cmdTxt) in D:\Glenn\ERPs -FRAME4\ERP.DAL\DBHelper.cs:95
  ERP.DAL.InDepotService.InsertInModelDetail(InModelDetail inde) in D:\Glenn\ERPs -FRAME4\ERP.DAL\InDepotService.cs:68
  ERP.BLL.InModelDetailManager.InsertInModelDetail(InModelDetail inmodeldetail) in d:\Glenn\ERPs -FRAME4\WEB\App_Code\InModelDetailManager.cs:15
  Master_Default.btnClickOK_Click(Object sender, EventArgs e) in d:\Glenn\ERPs -FRAME4\WEB\InDepot.aspx.cs:88
  System.Web.UI.WebControls.Button.OnClick(EventArgs e) +115
  System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +140
  System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +29
  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2981

 

哪位高人解答?

------解决方案--------------------
列名或所提供值的数目与表定义不匹配
------解决方案--------------------
请断点调试
------解决方案--------------------
表结构不同
------解决方案--------------------
肯定有不一样的地方,要么代码不同,要么数据库结构不同。
------解决方案--------------------
插入的列名与表结构列不匹配,再注意看下
------解决方案--------------------
看下这些methodName,cmdTxt,eventArgument的定义和数据库有没有什么不同
------解决方案--------------------
肯定是没把语句写完整,或者是遇到null值了
------解决方案--------------------
问题描述得不够清晰,看不出你怎么操作的。没法判断,而且你的问题容易误导别人,让别人误以为你做了正确的操作。。。