您的位置:首页 > 数据库

一般项目的一层开发(将三层汇集到一层),巧妙运用 SqlDataReader

2009-05-12 09:40 381 查看
public void padding(string tbname, string FieldKey, string FieldShow, string Where, string FieldOrder, int PageCurrent, int PageSize)
{
SqlConnection connection = DB.CreatCon();
connection.Open();

SqlCommand command = new SqlCommand("P_viewPage", connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@TableName", SqlDbType.VarChar, 500));
command.Parameters["@TableName"].Value = tbname;
command.Parameters.Add(new SqlParameter("@PrimaryKey", SqlDbType.VarChar, 500));
command.Parameters["@PrimaryKey"].Value = FieldKey;
command.Parameters.Add(new SqlParameter("@FieldList", SqlDbType.VarChar, 800));
command.Parameters["@FieldList"].Value = FieldShow;
command.Parameters.Add(new SqlParameter("@Where", SqlDbType.VarChar, 800));
command.Parameters["@Where"].Value = Where;
command.Parameters.Add(new SqlParameter("@Order", SqlDbType.VarChar, 800));
command.Parameters["@Order"].Value = FieldOrder;
command.Parameters.Add(new SqlParameter("@SortType", SqlDbType.VarChar, 800));
command.Parameters["@SortType"].Value = 2;
command.Parameters.Add(new SqlParameter("@RecorderCount", SqlDbType.VarChar, 800));
command.Parameters["@RecorderCount"].Value = 0;
command.Parameters.Add(new SqlParameter("@PageIndex", SqlDbType.Int));
command.Parameters["@PageIndex"].Value = PageCurrent;
command.Parameters.Add(new SqlParameter("@PageSize", SqlDbType.Int));
command.Parameters["@PageSize"].Value = PageSize;
command.Parameters.Add(new SqlParameter("@TotalPageCount", SqlDbType.Int));
command.Parameters["@TotalPageCount"].Direction = ParameterDirection.Output;
command.Parameters.Add(new SqlParameter("@TotalCount", SqlDbType.Int));
command.Parameters["@TotalCount"].Direction = ParameterDirection.Output;

try
{
SqlDataReader reader = command.ExecuteReader(); 注意:// 返回的是一个datareader。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
this.rp_college.DataSource = reader;
this.rp_college.DataBind();
}
catch
{ }
finally
{
connection.Close();
connection.Dispose();
}
this.lb_allpage.Text = Convert.ToString(command.Parameters["@TotalPageCount"].Value);
this.lb_count.Text = Convert.ToString(command.Parameters["@TotalCount"].Value);
}

第二层:

public Model.Collections.HotelOrderInfoCollection OrderList(Model.HotelOrderInfo Info,int Page,int PageSize,out int Count,out int allroomcount,out int allorderprice,out int allfloorprice,out int xuzhucount)
{

SqlParameter[] param = new SqlParameter[]
{
new SqlParameter("@InTime",SqlDbType.VarChar,20),
new SqlParameter("@OutTime",SqlDbType.VarChar,20),
new SqlParameter("@UserName",SqlDbType.VarChar,100),
new SqlParameter("@UserCard",SqlDbType.VarChar,50),
new SqlParameter("@UserNickName",SqlDbType.VarChar,50),
new SqlParameter("@UserMobile",SqlDbType.VarChar,20),
new SqlParameter("@UserOrderNum",SqlDbType.VarChar,20),
new SqlParameter("@HotelName",SqlDbType.VarChar,100),
new SqlParameter("@OrderState",SqlDbType.VarChar,2),
new SqlParameter("@Page",SqlDbType.Int),
new SqlParameter("@PageSize",SqlDbType.Int),
new SqlParameter("@SqlSTR",SqlDbType.VarChar,5000),
new SqlParameter("@UserId",SqlDbType.VarChar,10),
new SqlParameter("@DFGongSi",SqlDbType.VarChar,20),
new SqlParameter("@DFYuan",SqlDbType.VarChar,20),
new SqlParameter("@IsUser",SqlDbType.VarChar,10),
new SqlParameter("@HotelId",SqlDbType.Int),
new SqlParameter("@MenList",SqlDbType.VarChar,100),
new SqlParameter("@RoomId",SqlDbType.Int),
new SqlParameter("@Type",SqlDbType.Int),
new SqlParameter("@BackFax",SqlDbType.Int),
new SqlParameter("@Special",SqlDbType.Int),
new SqlParameter("@isp",SqlDbType.NVarChar,4),
new SqlParameter("@fangwan",SqlDbType.Int)
};
param[0].Value = Info.InTime;
param[1].Value = Info.OutTime;
param[2].Value = Info.UserName;
param[3].Value = Info.UserCard;
param[4].Value = Info.UserRname;
param[5].Value = Info.UserMobile;
param[6].Value = Info.OrderNum;
param[7].Value = Info.HotelName;
param[8].Value = Info.Order_State;
param[9].Value = Page;
param[10].Value = PageSize;
param[11].Direction = System.Data.ParameterDirection.Output;
param[12].Value = Info.UserId;
param[13].Value = Info.YuDingGongSi;
param[14].Value = Info.YuDingYuan;
param[15].Value = Info.IsUser;
param[16].Value = Info.HotelId;
param[17].Value = Info.MenList;
param[18].Value = Info.RoomId;
param[19].Value = Info.Type;
param[20].Value = Info.BackFax;
param[21].Value = Info.Special;
param[22].Value = Info.isp;
if(Info.fangwan =="" || Info.fangwan ==null)
{
param[23].Value=-1;
}
else{
param[23].Value = Convert.ToInt32(Info.fangwan);
}
Model.Collections.HotelOrderInfoCollection Co = new JsSys.Model.Collections.HotelOrderInfoCollection();
using (System.Data.SqlClient.SqlConnection Conn = ICon.Conn)
{
SqlDataReader dr = SqlHelper.ExecuteReader(Conn,CommandType.StoredProcedure,"Sp_SearchOrder1",param);
if (dr.Read()) 注意:返回的第一个数据集 sqldatareader
{
Count=Convert.ToInt32(dr[0].ToString());
}
else
{
Count = 0;
}

this.rp_college.DataSource = dr.NextResult(); 注意:返回的第二个数据集 sqldatareader

this.rp_college.DataBind();
while (dr.Read())
{
Co.Add(this.FillOrderInfo(dr));
}

dr.NextResult(); 注意:返回的第三个数据集 sqldatareader

try
{
if (dr.Read())
{

allroomcount = Convert.ToInt32(Math.Round(Convert.ToDouble(dr[0].ToString()),0));
allorderprice =Convert.ToInt32(Math.Round(Convert.ToDouble(dr[1].ToString()),0));
allfloorprice = Convert.ToInt32(Math.Round(Convert.ToDouble(dr[2].ToString()),0));

try
{
xuzhucount = (int)dr[3];
}
catch
{
xuzhucount = 0;
}
}
else
{
allroomcount = 0;
allorderprice = 0;
allfloorprice=0;
xuzhucount = 0;
}
}
catch
{
allroomcount = 0;
allorderprice = 0;
allfloorprice=0;
xuzhucount = 0;
}
}

return Co;

}

汇总:

public void getdata(){

SqlParameter[] param = new SqlParameter[]
{
new SqlParameter("@OrderNum",SqlDbType.VarChar,20),
new SqlParameter("@Mobile",SqlDbType.VarChar,20),
new SqlParameter("@MenList",SqlDbType.VarChar,100)
};
param[0].Value = Info.OrderNum;
param[1].Value = Info.UserMobile;
param[2].Value = Info.MenList;
using (SqlConnection Conn = ICon.Conn)
{
SqlDataReader dr = SqlHelper.ExecuteReader(Conn,CommandType.StoredProcedure,"Sp_GetFreeOrderList",param)

if (dr.Read()) 注意:返回的第一个数据集 sqldatareader
{
Count=Convert.ToInt32(dr[0].ToString());
}
else
{
Count = 0;
}

dr.NextResult(); 注意:返回的第二个数据集 sqldatareader

dr.NextResult(); 注意:返回的第三个数据集 sqldatareader
try
{
if (dr.Read())
{

allroomcount = Convert.ToInt32(Math.Round(Convert.ToDouble(dr[0].ToString()),0));
allorderprice =Convert.ToInt32(Math.Round(Convert.ToDouble(dr[1].ToString()),0));
allfloorprice = Convert.ToInt32(Math.Round(Convert.ToDouble(dr[2].ToString()),0));

try
{
xuzhucount = (int)dr[3];
}
catch
{
xuzhucount = 0;
}
}
else
{
allroomcount = 0;
allorderprice = 0;
allfloorprice=0;
xuzhucount = 0;
}
}
catch
{
allroomcount = 0;
allorderprice = 0;
allfloorprice=0;
xuzhucount = 0;
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: