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

asp.net 调用存储过程的输出参数问题
Parameter '@ResultNum' not found in the collection.
SQL code

CREATE DEFINER = 'root'@'localhost'
PROCEDURE etm_one.P_CourseConflat(IN  P_StartCourseGuid  CHAR(36),
  IN  P_EndCourseGuid   CHAR(36),
  OUT ResultNum  INT)



这是调用的代码
C# code

DbParameter[] parameter = new DbParameter[]{dbHelper.CreateInDbParameter("P_StartCourseGuid",DbType.Guid,StartCourseGuid),
                                     dbHelper.CreateInDbParameter("P_EndCourseGuid",DbType.Guid,EndCourseGuid),
                                     dbHelper.CreateOutDbParameter("ReturnNum",DbType.Int32,result)};

            dbHelper.ExecuteNonQuery(CommandType.StoredProcedure, "P_CourseConflat", parameter);
            result = GetInt(parameter[2].Value);



asp.net 调用存储过程的输出参数时出现上面那个错误,网上查了下,说是mysql的问题。知道怎么解决的指教下。


------解决方案--------------------
dbHelper.CreateOutDbParameter("ReturnNum",DbType.Int32,result)这个参数要和存储过程中的out一样,也需要显示设置为OUTPUT
------解决方案--------------------
应该是这样的吧
dbHelper.CreateOutDbParameter("@ResultNum",DbType.Int32,result);
------解决方案--------------------
同意楼上的说法
------解决方案--------------------
探讨
dbHelper.CreateOutDbParameter("ReturnNum",DbType.Int32,result)这个参数要和存储过程中的out一样,也需要显示设置为OUTPUT