关于--此SqlParameterCollection 中未包含带有 ParameterName“XXXX”的 SqlParameter。
的问题的帖子我已经看了,而且添加了add,但是依然还是出现一样的问题,请各位大虾帮忙解决
错误信息:此 SqlParameterCollection 中未包含带有 ParameterName“@SortOrder”的 SqlParameter。
[IndexOutOfRangeException: 此 SqlParameterCollection 中未包含带有 ParameterName“@SortOrder”的 SqlParameter。]
   System.Data.SqlClient.SqlParameterCollection.RangeCheck(String parameterName) +48
   System.Data.SqlClient.SqlParameterCollection.get_Item(String parameterName) +10
   xmlchina.DataAccess.ForumColumns.GetInsertCommand() in D:\xmlchina\XMLChina\xmlchina\DataAccess\ForumColumns.cs:163
   xmlchina.DataAccess.ForumColumns.InsertForumColumn(ForumColumnData forumColumn) in D:\xmlchina\XMLChina\xmlchina\DataAccess\ForumColumns.cs:350
   xmlchina.BusinessRules.ForumColumn.Insert(ForumColumnData forumColumn) in D:\xmlchina\XMLChina\xmlchina\BusinessRules\ForumColumn.cs:48
   xmlchina.BusinessFacade.ForumColumnSystem.CreatForumColumn(String name, String description, Int32 groupID, ForumColumnData& forumColumnData) in D:\xmlchina\XMLChina\xmlchina\BusinessFacade\ForumColumnSystem.cs:61
   xmlchina.Web.modules.forumlistmodule.AddForumColumnButton_Click(Object sender, EventArgs e) in D:\xmlchina\XMLChina\xmlchina\Web\modules\forumlistmodule.ascx.cs:109
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain() +1292
相应的文件的代码SqlParameterCollection sqlParams = insertCommand.Parameters;
sqlParams.Add(new SqlParameter(PKID_PARM, SqlDbType.Int));
sqlParams.Add(new SqlParameter(NAME_PARM, SqlDbType.NVarChar,50));
sqlParams.Add(new SqlParameter(DESCRIPTION_PARM, SqlDbType.NVarChar,500));
sqlParams.Add(new SqlParameter(GROUPID_PARM,SqlDbType.Int));
sqlParams.Add(new SqlParameter(SORTORDER_PARM,SqlDbType.Int));--此句为我自己添加,添加后依然报错sqlParams[PKID_PARM].SourceColumn = ForumColumnData.PKID_FIELD;
sqlParams[PKID_PARM].Direction = ParameterDirection.Output;
sqlParams[NAME_PARM].SourceColumn = ForumColumnData.NAME_FIELD;
sqlParams[DESCRIPTION_PARM].SourceColumn = ForumColumnData.DESCRIPTION_FIELD;
sqlParams[GROUPID_PARM].SourceColumn = ForumColumnData.GROUPID_FIELD;
sqlParams[SORTORDER_PARM].SourceColumn = ForumColumnData.SORTORDER_FIELD;之前有个定义为:private const String SORTORDER_PARM = "@SortOrder";
参考了一些网上的办法,但是还是同样的问题,小弟水平实在不行,所以请各位大虾帮忙解决这个问题
 

解决方案 »

  1.   

    你有没有使用缓存??
    有的话,建议你重启一下SQLServer以及ASPNET_WP.EXE进程实在不行,你试试sqlParams[4].SourceColumn = ForumColumnData.SORTORDER_FIELD;
      

  2.   

    有的时候.NET的确会出一些让人及其郁闷的问题我昨天晚上还遇到一个类似的问题,不过是Oracle的
      

  3.   

    应该不是重启的问题,我昨天就是这个问题,到今天还是沙发上兄弟说得方法试过了,还是不行不是我想这样写,而是别人写好了,现在我是来改bug的=.=
      

  4.   

    看看sqlParams["@SortOrder"]存在吗
      

  5.   

    报告楼上的大大,没有,但是类开始有个定义private const String SORTORDER_PARM = "@SortOrder";
      

  6.   

    我的建议还是你重启一下电脑因为我觉得你这个问题实在是奇怪另外,你可以试试
    sqlParams[4].SourceColumn = ForumColumnData.SORTORDER_FIELD;
    看看是不是还是不行先
      

  7.   

    那你有没有使用sqlParams[4].SourceColumn = ForumColumnData.SORTORDER_FIELD;试试啊?看看你的代码是不是把这个parameter加进去了没有源代码,我也只能说我的理由,实在没有办法了,我也就只有“估计”了,hoho
      

  8.   

    用了sqlParams.Add(new SqlParameter(SORTORDER_PARM, SqlDbType.Int));这句算不算加?源码实在很多啊,不过网上到处有下,比如http://www.downcode.com/down/code/j_7772.shtml其实就是xmlchina论坛的源码,创建二级板块的时候报上面那个错误