/// <summary>
        /// 
        /// </summary>
        /// <param name="GetNum"></param>
        /// <param name="SiteEnName"></param>
        /// <returns></returns>
        public static DataTable GetHightPersons(int GetNum, string SiteEnName, out int totalRecord)
        {
            int total = 0;
            StringBuilder strSql = new StringBuilder();
            strSql.Append("exec Sp_GetHightPersons ");
            strSql.Append(" @Num = " + GetNum + " ,@SiteEnName = N'" + SiteEnName + "' ,@TotalRecord = " + total);
            totalRecord = total;
            return DbHelperSQL.Query(strSql.ToString()).Tables[0];
        }
程序中这样拼接sql语句运行存储过程的方法,如何得到回传的totalRecord值呢?请大牛帮忙,谢谢!

解决方案 »

  1.   

    SqlParameter totalRecord= new SqlParameter("@totalRecord", SqlDbType.Int);
                totalRecord.Direction = ParameterDirection.Output;
                comm.Parameters.Add(totalRecord);执行后赋值
    IndexIDentity = int.Parse(comm.Parameters["@totalRecord"].Value.ToString());
      

  2.   

    执行后赋值 
    IndexIDentity = int.Parse(comm.Parameters["@totalRecord"].Value.ToString());
    ---》
    执行后赋值 
    totalRecord= int.Parse(comm.Parameters["@totalRecord"].Value.ToString());
      

  3.   

    我把方法给改了:public static DataTable GetHightPersons(int GetNum, string SiteEnName, out int totalRecord)
            {
                SqlParameter[] parameters = { 
                    new SqlParameter("@Num", SqlDbType.Int),
                    new SqlParameter("@SiteEnName", SqlDbType.VarChar),
                    new SqlParameter("@TotalRecord", SqlDbType.Int)
                };            parameters[0].Value = GetNum;
                parameters[1].Value = SiteEnName;
                parameters[2].Value = ParameterDirection.Output;
                string connStr = ConfigurationManager.ConnectionStrings["SQLConnString1"].ConnectionString;
                SqlConnection conn = new SqlConnection(connStr);
                DataTable dt = DBUtility.SqlHelper.ExecuteDataset(conn, "Sp_GetHightPersons", parameters).Tables[0];
                totalRecord =Convert.ToInt32(parameters[2].Value);
                return dt;
            }
    存储过程内执行的totalRecord 数应该是17,咋到程序里面就变成2了,无语的很,不知道哪里出错了!
      

  4.   

    看错了
    你这句还能调试通过
    parameters[2].Value = ParameterDirection.Output;
    ???
      

  5.   

    parameters[2].Value = ParameterDirection.Output;
    错误!!
    应该是:
    parameters[2].ParameterDirection = ParameterDirection.Output;调用方法 :
    int retCount=0
    DataTable dt=GetHightPersons(其他参数,out retCount);