public DataTable getdatatable(string tblName, string strGetFields, string fldName, int PageSize, int PageIndex, string strWhere, string ascColumn)
{
SqlCommand cmd = new SqlCommand("sp_PageView", conn);
cmd.CommandType = CommandType.StoredProcedure; SqlParameter para_tblName = new SqlParameter();
para_tblName.ParameterName = "@tbname";
para_tblName.SqlDbType = SqlDbType.VarChar;
para_tblName.Direction = ParameterDirection.Input;
para_tblName.Value = tblName;
cmd.Parameters.Add(para_tblName); SqlParameter para_strGetFields = new SqlParameter();
para_strGetFields.ParameterName = "@FieldShow";
para_strGetFields.SqlDbType = SqlDbType.VarChar;
para_strGetFields.Direction = ParameterDirection.Input;
para_strGetFields.Value = strGetFields;
cmd.Parameters.Add(para_strGetFields); SqlParameter para_fldName = new SqlParameter();
para_fldName.ParameterName = "@Fieldkey";
para_fldName.SqlDbType = SqlDbType.VarChar;
para_fldName.Direction = ParameterDirection.Input;
para_fldName.Value = fldName;
cmd.Parameters.Add(para_fldName); SqlParameter para_PageSize = new SqlParameter();
para_PageSize.ParameterName = "@pageSize";
para_PageSize.SqlDbType = SqlDbType.Int;
para_PageSize.Direction = ParameterDirection.Input;
para_PageSize.Value = PageSize;
cmd.Parameters.Add(para_PageSize); SqlParameter para_PageIndex = new SqlParameter();
para_PageIndex.ParameterName = "@PageCurrent";
para_PageIndex.SqlDbType = SqlDbType.Int;
para_PageIndex.Direction = ParameterDirection.Input;
para_PageIndex.Value = PageIndex;
cmd.Parameters.Add(para_PageIndex);
SqlParameter para_strWhere = new SqlParameter();
para_strWhere.ParameterName = "@Where";
para_strWhere.SqlDbType = SqlDbType.VarChar;
para_strWhere.Direction = ParameterDirection.Input;
para_strWhere.Value = strWhere;
cmd.Parameters.Add(para_strWhere);
SqlParameter para_ascColumn = new SqlParameter();
para_ascColumn.ParameterName = "@fieldOrder";
para_ascColumn.SqlDbType = SqlDbType.VarChar;
para_ascColumn.Direction = ParameterDirection.Input;
para_ascColumn.Value = ascColumn;
cmd.Parameters.Add(para_ascColumn); SqlParameter para_PageCount = new SqlParameter();
para_PageCount.ParameterName = "@PageCount";
para_PageCount.SqlDbType = SqlDbType.Int;
para_PageCount.Direction = ParameterDirection.Output;
cmd.Parameters.Add(para_PageCount);
try
{
SqlDataAdapter dpt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
dpt.Fill(ds);
return ds.Tables[0];
}
catch (SqlException e)
{
return null;
}
}上面的话,返回的是一个ds.Tables[0],但是还要返回一个(int)cmd.Parameters["@PageCount"].Value的输出参数,怎么办?
{
SqlCommand cmd = new SqlCommand("sp_PageView", conn);
cmd.CommandType = CommandType.StoredProcedure; SqlParameter para_tblName = new SqlParameter();
para_tblName.ParameterName = "@tbname";
para_tblName.SqlDbType = SqlDbType.VarChar;
para_tblName.Direction = ParameterDirection.Input;
para_tblName.Value = tblName;
cmd.Parameters.Add(para_tblName); SqlParameter para_strGetFields = new SqlParameter();
para_strGetFields.ParameterName = "@FieldShow";
para_strGetFields.SqlDbType = SqlDbType.VarChar;
para_strGetFields.Direction = ParameterDirection.Input;
para_strGetFields.Value = strGetFields;
cmd.Parameters.Add(para_strGetFields); SqlParameter para_fldName = new SqlParameter();
para_fldName.ParameterName = "@Fieldkey";
para_fldName.SqlDbType = SqlDbType.VarChar;
para_fldName.Direction = ParameterDirection.Input;
para_fldName.Value = fldName;
cmd.Parameters.Add(para_fldName); SqlParameter para_PageSize = new SqlParameter();
para_PageSize.ParameterName = "@pageSize";
para_PageSize.SqlDbType = SqlDbType.Int;
para_PageSize.Direction = ParameterDirection.Input;
para_PageSize.Value = PageSize;
cmd.Parameters.Add(para_PageSize); SqlParameter para_PageIndex = new SqlParameter();
para_PageIndex.ParameterName = "@PageCurrent";
para_PageIndex.SqlDbType = SqlDbType.Int;
para_PageIndex.Direction = ParameterDirection.Input;
para_PageIndex.Value = PageIndex;
cmd.Parameters.Add(para_PageIndex);
SqlParameter para_strWhere = new SqlParameter();
para_strWhere.ParameterName = "@Where";
para_strWhere.SqlDbType = SqlDbType.VarChar;
para_strWhere.Direction = ParameterDirection.Input;
para_strWhere.Value = strWhere;
cmd.Parameters.Add(para_strWhere);
SqlParameter para_ascColumn = new SqlParameter();
para_ascColumn.ParameterName = "@fieldOrder";
para_ascColumn.SqlDbType = SqlDbType.VarChar;
para_ascColumn.Direction = ParameterDirection.Input;
para_ascColumn.Value = ascColumn;
cmd.Parameters.Add(para_ascColumn); SqlParameter para_PageCount = new SqlParameter();
para_PageCount.ParameterName = "@PageCount";
para_PageCount.SqlDbType = SqlDbType.Int;
para_PageCount.Direction = ParameterDirection.Output;
cmd.Parameters.Add(para_PageCount);
try
{
SqlDataAdapter dpt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
dpt.Fill(ds);
return ds.Tables[0];
}
catch (SqlException e)
{
return null;
}
}上面的话,返回的是一个ds.Tables[0],但是还要返回一个(int)cmd.Parameters["@PageCount"].Value的输出参数,怎么办?
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SqlServer"].ToString());
conn.Open();
SqlCommand MyCommand = new SqlCommand("MYSQL", conn);
MyCommand.CommandType = CommandType.StoredProcedure;
MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));
MyCommand.Parameters["@a"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));
MyCommand.Parameters["@b"].Direction = ParameterDirection.Output;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@b"].Value.ToString());
http://topic.csdn.net/u/20091013/13/1ba85d9b-ef2e-41d1-9fd5-11218015264c.html
public DataTable getdatatable(string tblName, string strGetFields, string fldName, int PageSize, int PageIndex, string strWhere, string ascColumn,out int retValue)
SqlCommand cmd = new SqlCommand("sp_PageView", conn);
cmd.CommandType = CommandType.StoredProcedure; SqlParameter para_tblName = new SqlParameter();
para_tblName.ParameterName = "@tbname";
para_tblName.SqlDbType = SqlDbType.VarChar;
para_tblName.Direction = ParameterDirection.Input;
para_tblName.Value = tblName;
cmd.Parameters.Add(para_tblName); SqlParameter para_strGetFields = new SqlParameter();
para_strGetFields.ParameterName = "@FieldShow";
para_strGetFields.SqlDbType = SqlDbType.VarChar;
para_strGetFields.Direction = ParameterDirection.Input;
para_strGetFields.Value = strGetFields;
cmd.Parameters.Add(para_strGetFields); SqlParameter para_fldName = new SqlParameter();
para_fldName.ParameterName = "@Fieldkey";
para_fldName.SqlDbType = SqlDbType.VarChar;
para_fldName.Direction = ParameterDirection.Input;
para_fldName.Value = fldName;
cmd.Parameters.Add(para_fldName); SqlParameter para_PageSize = new SqlParameter();
para_PageSize.ParameterName = "@pageSize";
para_PageSize.SqlDbType = SqlDbType.Int;
para_PageSize.Direction = ParameterDirection.Input;
para_PageSize.Value = PageSize;
cmd.Parameters.Add(para_PageSize); SqlParameter para_PageIndex = new SqlParameter();
para_PageIndex.ParameterName = "@PageCurrent";
para_PageIndex.SqlDbType = SqlDbType.Int;
para_PageIndex.Direction = ParameterDirection.Input;
para_PageIndex.Value = PageIndex;
cmd.Parameters.Add(para_PageIndex);
SqlParameter para_strWhere = new SqlParameter();
para_strWhere.ParameterName = "@Where";
para_strWhere.SqlDbType = SqlDbType.VarChar;
para_strWhere.Direction = ParameterDirection.Input;
para_strWhere.Value = strWhere;
cmd.Parameters.Add(para_strWhere);
SqlParameter para_ascColumn = new SqlParameter();
para_ascColumn.ParameterName = "@fieldOrder";
para_ascColumn.SqlDbType = SqlDbType.VarChar;
para_ascColumn.Direction = ParameterDirection.Input;
para_ascColumn.Value = ascColumn;
cmd.Parameters.Add(para_ascColumn); SqlParameter para_PageCount = new SqlParameter();
para_PageCount.ParameterName = "@PageCount";
para_PageCount.SqlDbType = SqlDbType.Int;
para_PageCount.Direction = ParameterDirection.Output;
cmd.Parameters.Add(para_PageCount);
try
{
SqlDataAdapter dpt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
dpt.Fill(ds);
retValue=(intcmd.Parameters["@PageCount"].Value;
return ds.Tables[0];)
}
catch (SqlException e)
{
return null;
}
方法的调用
int retValue=0;
DateTable dt=DataTable getdatatable(参数...,out retValue);这样dt就是你返回的数据集,retValue就是你的返回值
根据楼主代码加一个out的整型:
public DataTable getdatatable(string tblName, string strGetFields, string fldName, int PageSize, int PageIndex, string strWhere, string ascColumn,out int a )
{
.......
a=100;
....
return ds.Tables[0];
}调用:
yourClass yClass=new yourClass();
int a;
DataTable myT=yClass(参数1,参数2,.....out a);
Response.Write(a.ToString());//这里就是你需要的a,即100!!