/// <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值呢?请大牛帮忙,谢谢!
totalRecord.Direction = ParameterDirection.Output;
comm.Parameters.Add(totalRecord);执行后赋值
IndexIDentity = int.Parse(comm.Parameters["@totalRecord"].Value.ToString());
IndexIDentity = int.Parse(comm.Parameters["@totalRecord"].Value.ToString());
---》
执行后赋值
totalRecord= int.Parse(comm.Parameters["@totalRecord"].Value.ToString());
{
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了,无语的很,不知道哪里出错了!
你这句还能调试通过
parameters[2].Value = ParameterDirection.Output;
???
错误!!
应该是:
parameters[2].ParameterDirection = ParameterDirection.Output;调用方法 :
int retCount=0
DataTable dt=GetHightPersons(其他参数,out retCount);