表名:restaurant.字段:Id,ResName,Tag1,Tag2.
4个类:sqlhelper.cs(这个我用微软的,就不贴代码了),restaurant.cs(就等于三层架构的模型层,字段就是表的4个字段),dal_restaurant.cs,bll.restaurant.cs.dal_restaurant.cs代码如下
/// <summary>
/// 按ResName查询餐馆总数
/// </summary>
///
public int GetCount_ResName(string ResName)
{
SqlParameter[] cmdParms ={
new SqlParameter("@ResName",SqlDbType.VarChar),
};
cmdParms[0].Value = ResName;
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
int count = int.Parse(SqlHelper.ExecuteScalar(conn, CommandType.StoredProcedure, "count_res_ResName", cmdParms).ToString());
return count;
}
}
/// <summary>
/// 按ResName查询餐馆列表
/// </summary>
///
public List<restaurant> page_res_ResName(string ResName, int startIndex, int endIndex)
{
SqlParameter[] cmdParms ={
new SqlParameter("@ResName",SqlDbType.VarChar),
new SqlParameter("@startIndex",SqlDbType.Int),
new SqlParameter("@endIndex",SqlDbType.Int)
};
cmdParms[0].Value = ResName;
cmdParms[1].Value = startIndex;
cmdParms[2].Value = endIndex ;
List<restaurant> list = new List<restaurant>();
SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "page_res_ResName", cmdParms);
while (reader.Read())
{
restaurant res = new restaurant();
res.Id = int.Parse(reader["Id"].ToString());
res.ResName = reader["ResName"].ToString();
res.Tag1 = reader["Tag1"].ToString();
res.Tag2 = reader["Tag2"].ToString();
list.Add(res);
}
reader.Dispose();
return list;
} /// <summary>
/// 分页获取餐馆列表(不带条件)
/// </summary>
///
public List<restaurant> GetAllRes(int startIndex, int endIndex)
{
SqlParameter[] cmdParms ={
new SqlParameter("@startIndex",SqlDbType.Int),
new SqlParameter("@endIndex",SqlDbType.Int)
};
cmdParms[0].Value = startIndex;
cmdParms[1].Value = endIndex;
List<restaurant> list = new List<restaurant>();
SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "page", cmdParms);
while (reader.Read())
{
restaurant res = new restaurant();
res.Id = int.Parse(reader["Id"].ToString());
res.ResName = reader["ResName"].ToString();
res.Tag1 = reader["Tag1"].ToString();
res.Tag2 = reader["Tag2"].ToString();
list.Add(res);
}
reader.Dispose();
return list;
}
/// <summary>
/// 所有餐馆总数(不带条件)
/// </summary>
///
public int GetCount()
{ using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
int count = int.Parse(SqlHelper.ExecuteScalar(conn, CommandType.StoredProcedure, "count_res", null).ToString());
return count;
}
}
bll_restaurant.cs代码如下: /// <summary>
/// 所有餐馆总数
/// </summary>
public int GetCount()
{
return res.GetCount();
} /// <summary>
/// 分页获取餐馆列表
/// </summary>
public List<restaurant> GetAllRes(int startIndex, int endIndex)
{
return res.GetAllRes(startIndex, endIndex);
} /// <summary>
/// 按ResName查询餐馆总数
/// </summary>
/// public int GetCount_ResName(string ResName)
{
return res.GetCount_ResName(ResName);
} /// <summary>
/// 按ResName查询餐馆列表
/// </summary>
///
public List<restaurant> page_res_ResName(string ResName, int startIndex, int endIndex)
{
return res.page_res_ResName(ResName, startIndex, endIndex);
}default.aspx代码:
bll_restaurant bll_res = new bll_restaurant();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
int totalPage = bll_res.GetCount();
AspNetPager1.RecordCount = totalPage;
bindData();
}
else
{
int totalPage = bll_res.GetCount_ResName(txtResName.Text);
AspNetPager1.RecordCount = totalPage;
bindData_ResName();
}
}
protected void btnResName_Click(object sender, EventArgs e)
{
Response.Redirect(string.Format("Default.aspx?ResName={0}", this.txtResName.Text));
}
//绑定所有餐馆
void bindData()
{
DataList1.DataSource = bll_res.GetAllRes(AspNetPager1.StartRecordIndex, AspNetPager1.EndRecordIndex);
DataList1.DataBind();
} //绑定ResName餐馆
void bindData_ResName()
{
DataList1.DataSource = bll_res.page_res_ResName(this.txtResName.Text, AspNetPager1.StartRecordIndex, AspNetPager1.EndRecordIndex);
DataList1.DataBind();
}
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
if (txtResName.Text!="")
{
bindData_ResName();
}
else
{
bindData();
}
}现在我加载页面是正常地显示所有数据,并能正常分页。
但我在txtResName文本框输入条件后,显示数据依然没变,请问原因。
我
4个类:sqlhelper.cs(这个我用微软的,就不贴代码了),restaurant.cs(就等于三层架构的模型层,字段就是表的4个字段),dal_restaurant.cs,bll.restaurant.cs.dal_restaurant.cs代码如下
/// <summary>
/// 按ResName查询餐馆总数
/// </summary>
///
public int GetCount_ResName(string ResName)
{
SqlParameter[] cmdParms ={
new SqlParameter("@ResName",SqlDbType.VarChar),
};
cmdParms[0].Value = ResName;
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
int count = int.Parse(SqlHelper.ExecuteScalar(conn, CommandType.StoredProcedure, "count_res_ResName", cmdParms).ToString());
return count;
}
}
/// <summary>
/// 按ResName查询餐馆列表
/// </summary>
///
public List<restaurant> page_res_ResName(string ResName, int startIndex, int endIndex)
{
SqlParameter[] cmdParms ={
new SqlParameter("@ResName",SqlDbType.VarChar),
new SqlParameter("@startIndex",SqlDbType.Int),
new SqlParameter("@endIndex",SqlDbType.Int)
};
cmdParms[0].Value = ResName;
cmdParms[1].Value = startIndex;
cmdParms[2].Value = endIndex ;
List<restaurant> list = new List<restaurant>();
SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "page_res_ResName", cmdParms);
while (reader.Read())
{
restaurant res = new restaurant();
res.Id = int.Parse(reader["Id"].ToString());
res.ResName = reader["ResName"].ToString();
res.Tag1 = reader["Tag1"].ToString();
res.Tag2 = reader["Tag2"].ToString();
list.Add(res);
}
reader.Dispose();
return list;
} /// <summary>
/// 分页获取餐馆列表(不带条件)
/// </summary>
///
public List<restaurant> GetAllRes(int startIndex, int endIndex)
{
SqlParameter[] cmdParms ={
new SqlParameter("@startIndex",SqlDbType.Int),
new SqlParameter("@endIndex",SqlDbType.Int)
};
cmdParms[0].Value = startIndex;
cmdParms[1].Value = endIndex;
List<restaurant> list = new List<restaurant>();
SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "page", cmdParms);
while (reader.Read())
{
restaurant res = new restaurant();
res.Id = int.Parse(reader["Id"].ToString());
res.ResName = reader["ResName"].ToString();
res.Tag1 = reader["Tag1"].ToString();
res.Tag2 = reader["Tag2"].ToString();
list.Add(res);
}
reader.Dispose();
return list;
}
/// <summary>
/// 所有餐馆总数(不带条件)
/// </summary>
///
public int GetCount()
{ using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
int count = int.Parse(SqlHelper.ExecuteScalar(conn, CommandType.StoredProcedure, "count_res", null).ToString());
return count;
}
}
bll_restaurant.cs代码如下: /// <summary>
/// 所有餐馆总数
/// </summary>
public int GetCount()
{
return res.GetCount();
} /// <summary>
/// 分页获取餐馆列表
/// </summary>
public List<restaurant> GetAllRes(int startIndex, int endIndex)
{
return res.GetAllRes(startIndex, endIndex);
} /// <summary>
/// 按ResName查询餐馆总数
/// </summary>
/// public int GetCount_ResName(string ResName)
{
return res.GetCount_ResName(ResName);
} /// <summary>
/// 按ResName查询餐馆列表
/// </summary>
///
public List<restaurant> page_res_ResName(string ResName, int startIndex, int endIndex)
{
return res.page_res_ResName(ResName, startIndex, endIndex);
}default.aspx代码:
bll_restaurant bll_res = new bll_restaurant();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
int totalPage = bll_res.GetCount();
AspNetPager1.RecordCount = totalPage;
bindData();
}
else
{
int totalPage = bll_res.GetCount_ResName(txtResName.Text);
AspNetPager1.RecordCount = totalPage;
bindData_ResName();
}
}
protected void btnResName_Click(object sender, EventArgs e)
{
Response.Redirect(string.Format("Default.aspx?ResName={0}", this.txtResName.Text));
}
//绑定所有餐馆
void bindData()
{
DataList1.DataSource = bll_res.GetAllRes(AspNetPager1.StartRecordIndex, AspNetPager1.EndRecordIndex);
DataList1.DataBind();
} //绑定ResName餐馆
void bindData_ResName()
{
DataList1.DataSource = bll_res.page_res_ResName(this.txtResName.Text, AspNetPager1.StartRecordIndex, AspNetPager1.EndRecordIndex);
DataList1.DataBind();
}
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
if (txtResName.Text!="")
{
bindData_ResName();
}
else
{
bindData();
}
}现在我加载页面是正常地显示所有数据,并能正常分页。
但我在txtResName文本框输入条件后,显示数据依然没变,请问原因。
我
我是用此控件直接生成的存储过程page:
ALTER procedure page
(@startIndex int,
@endIndex int)
as
set nocount on
begin
declare @indextable table(id int identity(1,1),nid int)
set rowcount @endIndex
insert into @indextable(nid) select Id from restaurant order by Id asc
select O.Id,O.ResName,O.Tag1,O.Tag2 from restaurant O,@indextable t where O.Id=t.nid
and t.id between @startIndex and @endIndex order by t.id
end
set nocount off
count_res:
ALTER PROCEDURE count_res
AS
select count(*)from restaurant
RETURNcount_res_ResName:
ALTER PROCEDURE count_res_ResName
(
@ResName varchar(50)
)
AS
select count(*)from restaurant where ResName like '%@ResName%'
RETURNpage_res_ResName:
ALTER procedure page_res_ResName
(@ResName VarChar(50),
@startIndex int,
@endIndex int)
as
set nocount on
begin
declare @indextable table(id int identity(1,1),nid int)
set rowcount @endIndex
insert into @indextable(nid) select Id from restaurant where resname like '%@resname%' order by Id desc
select O.Id,O.ResName,O.Tag1,O.Tag2 from restaurant O,@indextable t where O.Id=t.nid
and t.id between @startIndex and @endIndex order by t.id
end
set nocount off