BusinessModel businessModel = new BusinessModel();
byte[] sourceByte = businessModel.querySystemLogByPaging(CurrentPage,ref pageCount);===
/// <summary>
/// 分页显示日志
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageCount"></param>
/// <returns></returns>
public byte[] querySystemLogByPaging(int pageIndex,ref int pageCount)
{
SqlDataComponent dataComponent = new SqlDataComponent();
DataSet ds=new DataSet();
try
{
if (dataComponent.CallProcedure("[dbo].[querySystemLogByPaging]", true, ds, new object[] { pageIndex, pageCount }))
{
return Compress.CompressDataSet(ds);
}
return null;
}
catch
{
return null;
}
}
==
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procedureName">存储过程名称</param>
/// <param name="isReturn">是否返回存储参数</param>
/// <param name="datasetParam">填充的数据集</param>
/// <param name="param">存储参数</param>
/// <returns>执行成功返回True,否则返回False</returns>
public bool CallProcedure(string procedureName, bool isReturn, DataSet datasetParam, params object[] param)
{
int stringParamCount; //存储参数个数
int i; SqlConnection db_Conn = new SqlConnection();
SqlCommand cmd = new SqlCommand();
SqlDataAdapter sda = new SqlDataAdapter(); bool status = false; try
{
db_Conn.ConnectionString = connString;
if (db_Conn.State != ConnectionState.Open)
db_Conn.Open();
stringParamCount = param.Length;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = procedureName;
cmd.Connection = db_Conn;
SqlCommandBuilder.DeriveParameters(cmd);
cmd.Parameters.RemoveAt(0);
for (i = 0; i < stringParamCount; i++)
{
cmd.Parameters[i].Value = param[i];
}
sda.SelectCommand = cmd;
sda.Fill(datasetParam);
if (isReturn)
{
for (i = 0; i < stringParamCount; i++)
{
param[i] = cmd.Parameters[i].Value;
}
}
status = true; }
catch (Exception err)
{
MethodClass.WriteErrMsg(procedureName + ":" + err.Message); }
finally
{
if (sda != null) sda.Dispose();
if (cmd != null) cmd.Dispose();
if (db_Conn != null)
{
db_Conn.Close();
db_Conn.Dispose();
}
}
return status;
}
分页总数如何通过传递给形参pageCount,用了ref还是没有返回,是params的原因?
byte[] sourceByte = businessModel.querySystemLogByPaging(CurrentPage,ref pageCount);===
/// <summary>
/// 分页显示日志
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageCount"></param>
/// <returns></returns>
public byte[] querySystemLogByPaging(int pageIndex,ref int pageCount)
{
SqlDataComponent dataComponent = new SqlDataComponent();
DataSet ds=new DataSet();
try
{
if (dataComponent.CallProcedure("[dbo].[querySystemLogByPaging]", true, ds, new object[] { pageIndex, pageCount }))
{
return Compress.CompressDataSet(ds);
}
return null;
}
catch
{
return null;
}
}
==
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procedureName">存储过程名称</param>
/// <param name="isReturn">是否返回存储参数</param>
/// <param name="datasetParam">填充的数据集</param>
/// <param name="param">存储参数</param>
/// <returns>执行成功返回True,否则返回False</returns>
public bool CallProcedure(string procedureName, bool isReturn, DataSet datasetParam, params object[] param)
{
int stringParamCount; //存储参数个数
int i; SqlConnection db_Conn = new SqlConnection();
SqlCommand cmd = new SqlCommand();
SqlDataAdapter sda = new SqlDataAdapter(); bool status = false; try
{
db_Conn.ConnectionString = connString;
if (db_Conn.State != ConnectionState.Open)
db_Conn.Open();
stringParamCount = param.Length;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = procedureName;
cmd.Connection = db_Conn;
SqlCommandBuilder.DeriveParameters(cmd);
cmd.Parameters.RemoveAt(0);
for (i = 0; i < stringParamCount; i++)
{
cmd.Parameters[i].Value = param[i];
}
sda.SelectCommand = cmd;
sda.Fill(datasetParam);
if (isReturn)
{
for (i = 0; i < stringParamCount; i++)
{
param[i] = cmd.Parameters[i].Value;
}
}
status = true; }
catch (Exception err)
{
MethodClass.WriteErrMsg(procedureName + ":" + err.Message); }
finally
{
if (sda != null) sda.Dispose();
if (cmd != null) cmd.Dispose();
if (db_Conn != null)
{
db_Conn.Close();
db_Conn.Dispose();
}
}
return status;
}
分页总数如何通过传递给形参pageCount,用了ref还是没有返回,是params的原因?
out也可以返回值。(使用间不需要初始化。)
返加多值的方法也就ref out 和指针了吧。
if (dataComponent.CallProcedure("[dbo].[querySystemLogByPaging]", true, ds, ref Objs)) public bool CallProcedure(string procedureName, bool isReturn, DataSet datasetParam, ref paramsobject[] param)
用SqlParameterCollection
/// <summary>
/// 分页显示日志
/// </summary>
/// <param name="pageIndex"> </param>
/// <param name="pageCount"> </param>
/// <returns> </returns>
public byte[] querySystemLogByPaging(int pageIndex,ref int pageCount)
{
SqlDataComponent dataComponent = new SqlDataComponent();
DataSet ds=new DataSet();
object[] obj=new obj[]{pageIndex,pageCount};
try
{
if (dataComponent.CallProcedure("[dbo].[querySystemLogByPaging]", true, ds, new object[] { pageIndex, pageCount }))
{
pageCount=int.Parse(obj[1]);
return Compress.CompressDataSet(ds);
}
return null;
}
catch
{
return null;
}
}