webform:分页组合查询
一个简单的分页组合查询页面
/// <summary>
/// 查询方法
/// </summary>
/// <param name="tsql">SQL语句</param>
/// <param name="hh">哈希表</param>
/// <returns></returns>
public List<Goods> Select(string uname, string sql, Hashtable hs)
{
List<Goods> glist = new List<Goods>();
cmd.CommandText = sql;
cmd.Parameters.Clear();
foreach (string aa in hs.Keys)
{
cmd.Parameters.AddWithValue(aa, hs[aa]);
}
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
Goods g = new Goods();
g.Ids = Convert.ToInt32(dr["Ids"]);
g.Sname = dr["Sname"].ToString();
g.Number = dr["Number"].ToString();
g.Date = Convert.ToDateTime(dr["Date"]);
g.Shelf = Convert.ToInt32(dr["Shelf"]);
g.Contacts = dr["Contacts"].ToString();
g.Tel = dr["Tel"].ToString();
g.UserName = uname;
glist.Add(g);
}
}
conn.Close();
return glist;
} /// <summary>
/// 查询方法(页数)
/// </summary>
/// <param name="tsql"></param>
/// <param name="hh"></param>
/// <returns></returns>
public List<Goods> Select(string uname, int count, int page, string sql, Hashtable hs)
{
List<Goods> glist = new List<Goods>();
string sql1 = sql.Replace("*", "top " + count + " * ");
string sql2 = sql.Replace("*", "top " + (page - ) * count + " Ids ");
cmd.CommandText = sql1 + " and Ids not in(" + sql2 + ")";
cmd.Parameters.Clear();
foreach (string aa in hs.Keys)
{
cmd.Parameters.AddWithValue(aa, hs[aa]);
}
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
Goods g = new Goods();
g.Ids = Convert.ToInt32(dr["Ids"]);
g.Sname = dr["Sname"].ToString();
g.Number = dr["Number"].ToString();
g.Date = Convert.ToDateTime(dr["Date"]);
g.Shelf = Convert.ToInt32(dr["Shelf"]);
g.Contacts = dr["Contacts"].ToString();
g.Tel = dr["Tel"].ToString();
g.UserName = uname;
glist.Add(g);
}
}
conn.Close();
return glist; }
数据访问类
public class Goods
{
public Goods()
{
//
// TODO: 在此处添加构造函数逻辑
//
} public int Ids { get; set; }
public string Sname { get; set; }
public string Number { get; set; }
public DateTime Date { get; set; }
public int Shelf { get; set; }
public string Contacts { get; set; }
public string Tel { get; set; }
public string UserName { get; set; } /// <summary>
/// 判断有效期,以颜色区分
/// </summary>
public string color
{
get
{
string re = "";
int a = Shelf - (DateTime.Now - Date).Days;
if(a<=)
re = "background-color:#393535; color:red;";
else if (a <= )
re = "background-color:red;";
else if (a <= &a>)
re = "background-color:yellow;";
return re;
}
}
}
封装实体类
public partial class Show : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request.Cookies["username"] != null)
{
string n = Request.Cookies["username"].Value;
Label_NowPage.Text = "";//第一页
Label_MaxPage.Text = MaxPageNumber().ToString();//获取最大页
btn_prev.Enabled = false;
btn_first.Enabled = false; Repeater1.DataSource = new GoodsData().Select(Count, );
Repeater1.DataBind();
int max = MaxPageNumber();
DropDownList1.Items.Clear();
//给可快速跳转列表框赋值
for (int i = ; i <= max; i++)
{
DropDownList1.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
string uname = new UsersData().Select(n).NickName;
Literal1.Text = "欢迎你," + uname + "";
}
else
{
Response.Redirect("Login.aspx");
} } DropDownList1.SelectedIndexChanged += Button1_Click;
btn_first.Click += btn_first_Click;//首页
btn_prev.Click += btn_prev_Click;//上一页
btn_next.Click += btn_next_Click;//下一页
btn_last.Click += btn_last_Click;//末页
Button1.Click += Button1_Click;//跳转按钮
Button2.Click += Button2_Click;
LinkButton1.Click += LinkButton1_Click;
} string sql = "";
//使用哈希表
Hashtable hs = new Hashtable();
private void groupselect()
{
sql = "select * from Warehouse";
hs.Clear();
//判断文本框中是否有内容需要查询
if (TextBox1.Text.Trim().Length > )
{
//如果有内容,那么就拼接到Tsql语句中去
sql += " where Sname like @a";
hs.Add("@a", "%" + TextBox1.Text.Trim() + "%");
hs.Add("@d", "%" + TextBox1.Text.Trim() + "%");
}
else
{
sql += " where 1=1";
}
if (TextBox2.Text.Trim().Length > )
{
sql += " and Shelf" + DropDownList2.SelectedValue + "@b";
hs.Add("@b", TextBox2.Text.Trim());
hs.Add("@e", TextBox2.Text.Trim());
}
else
{
sql += " and 1=1";
}
if (TextBox3.Text.Length > )
{
sql += " and Contacts like @c";
hs.Add("@c", "%" + TextBox3.Text.Trim() + "%");
hs.Add("@f", "%" + TextBox3.Text.Trim() + "%");
}
else
{
sql += " and 1=1";
}
Repeater1.DataSource = new GoodsData().Select(N, sql.Replace("*", "top " + Count + " *"), hs);
Repeater1.DataBind();
} void Button2_Click(object sender, EventArgs e)
{
groupselect();
int max = MaxPageNumber();
DropDownList1.Items.Clear();
for (int i = ; i <= max; i++)
{
DropDownList1.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
Label_NowPage.Text = "";
Label_MaxPage.Text = MaxPageNumber().ToString();
if (max == )
{
btn_first.Enabled = false;
btn_prev.Enabled = false;
btn_next.Enabled = false;
btn_last.Enabled = false;
}
else
{
btn_first.Enabled = false;
btn_prev.Enabled = false;
btn_next.Enabled = true;
btn_last.Enabled = true;
}
} void btn_prev_Click(object sender, EventArgs e)
{
groupselect();
int max = MaxPageNumber();
DropDownList1.Items.Clear();
for (int i = ; i <= max; i++)
{
DropDownList1.Items.Add(new ListItem(i.ToString(), i.ToString()));
} int nextPage = Convert.ToInt32(Label_NowPage.Text) - ; Repeater1.DataSource = new GoodsData().Select(N, Count, nextPage, sql, hs);
Repeater1.DataBind(); Label_NowPage.Text = nextPage.ToString();
panduan(nextPage);
} void btn_first_Click(object sender, EventArgs e)
{
groupselect();
int max = MaxPageNumber();
DropDownList1.Items.Clear();
for (int i = ; i <= max; i++)
{
DropDownList1.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
int nextPage = ; Repeater1.DataSource = new GoodsData().Select(N,Count, nextPage, sql, hs);
Repeater1.DataBind(); Label_NowPage.Text = nextPage.ToString();
panduan(nextPage);
} void btn_next_Click(object sender, EventArgs e)
{
groupselect();
int max = MaxPageNumber();
DropDownList1.Items.Clear();
for (int i = ; i <= max; i++)
{
DropDownList1.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
//获取当前页,计算要看的下一页的页号
int nextPage = Convert.ToInt32(Label_NowPage.Text) + ;
//按照获取的页数绑定相应的数据
Repeater1.DataSource = new GoodsData().Select(N,Count, nextPage, sql, hs);
Repeater1.DataBind();
//修改显示页数
Label_NowPage.Text = nextPage.ToString();
panduan(nextPage);
} void btn_last_Click(object sender, EventArgs e)
{
groupselect();
int max = MaxPageNumber();
DropDownList1.Items.Clear();
for (int i = ; i <= max; i++)
{
DropDownList1.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
int nextPage = MaxPageNumber();
//按照获取的页数绑定相应的数据
Repeater1.DataSource = new GoodsData().Select(N, Count, nextPage, sql, hs);
Repeater1.DataBind(); //修改显示页数
Label_NowPage.Text = nextPage.ToString();
panduan(nextPage); } void Button1_Click(object sender, EventArgs e)
{
//获取当前页,计算要看的下一页的页号
int nextPage = Convert.ToInt32(DropDownList1.SelectedValue); //按照获取的页数绑定相应的数据
Repeater1.DataSource = new GoodsData().Select(Count, nextPage);
Repeater1.DataBind(); //修改显示页数
Label_NowPage.Text = nextPage.ToString(); if (nextPage <= )
{
btn_prev.Enabled = false;
}
btn_next.Enabled = true;
} void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
} void LinkButton1_Click(object sender, EventArgs e)
{
Response.Redirect("Login.aspx");
}
string N = null;
int Count = ;
public int MaxPageNumber()
{
//查询所有的数据
List<Goods> glist = new List<Goods>();
if (sql == "")
{
glist = new GoodsData().Select(N);
}
else
{
glist = new GoodsData().Select(N, sql, hs);
}
//取上限
double end2 = Math.Ceiling(glist.Count / (Count * 1.0)); int end = Convert.ToInt32(end2); return end;
}
public void panduan(int nextPage)
{
if (nextPage == )
{
btn_first.Enabled = false;
btn_prev.Enabled = false;
btn_next.Enabled = true;
btn_last.Enabled = true;
}
else if (nextPage == MaxPageNumber())
{
btn_first.Enabled = true;
btn_prev.Enabled = true;
btn_next.Enabled = false;
btn_last.Enabled = false;
}
else
{
btn_first.Enabled = true;
btn_prev.Enabled = true;
btn_next.Enabled = true;
btn_last.Enabled = true;
}
}
}
展示界面后台代码
效果展示
1分页:
2单独条件查询
3多条件查询

4上下点击翻页(可直接点击下拉菜单进行跳转)

webform:分页组合查询的更多相关文章
- ASP.NETMVC4 分页组合查询解决方法
本人新手刚在webform转到mvc 像linq ef啥的,都是不会的不行不行的,不会就问群友,找资料 今天本屌遇到了一个分页组合查询的问题,解决了2个小时,把代码共享给大家 话不多话,直接上代 ...
- Linq组合查询与分页组合查询结合
1.组合查询 <div>姓名:<asp:TextBox ID="T1" runat="server"></asp:TextBox& ...
- 【2017-06-02】Linq高级查询,实现分页组合查询。
1.以XXX开头 2.以XXX结尾 3.模糊查询 4.求个数 5.求最大值 6.求最小值 7.求平均值 8.求和 9.升序 10.降序 11.分页 Skip()跳过多少条 Take()取多少条 12. ...
- linq分页组合查询
一.linq高级查 1.模糊查(字符串包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r = ...
- Webform--LinQ 分页组合查询
一.linq高级查 1.模糊查(字符串包含) public List<User> Select(string name) { return con.User.Where(r => r ...
- ASP.NET 分页+组合查询 练习
分页和组合查询都是通过拼接SQL语句到数据库查询进行实现 到汽车表(car)中查询 ,汽车表选取了“编号 code”,“车名 name”,“日期 time”,“油耗 oil ”,“马力 powers” ...
- webform 分页、组合查询综合使用
界面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx ...
- Webform(Linq高级查、分页、组合查询)
一.linq高级查 1.模糊查(包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r => ...
- Webform(分页与组合查询配合使用)
1.封装实体类 2.写查询方法 //SubjectData类 public List<Subject> Select(string name) { List<Subject> ...
随机推荐
- 将自己写的库上传到cocoapods(2015)
2015年以前上传到cocoapods的方式相较于现在比较麻烦,现在用不上在此也就不提了.现在上传到cocoapods只需要简单的几步即可. 1.首先你需要有一个自我感觉写的差不多的库. 2.注册tr ...
- jsp声称的java文件位置
想找到JSP生成的字节码文件还是Java文件,这得看你加载Web应用是自己配置的Tomcat还是加载到Eclipse默认路径下:先说Eclipse默认路径下的吧,其路径为:你的eclipse存放工程的 ...
- spring.net (1) 概念-控制反转(又名依赖注入)
Spring.net 作为一个应用程序框架,在构建企业级.net应用程序提供了很多灵活而又丰富的功能(如:依赖注入,aop,数据访问抽象,asp.net 扩展). 控制反转: Inversion of ...
- iOS 滑动隐藏导航栏-三种方式
/** 1隐藏导航栏-简单- */ self.navigationController.hidesBarsOnSwipe = YES; /** 2隐藏导航栏-不随tableView滑动消失效果 ...
- Android中TextView添加删除线
项目中的需求~~~~ 商城中物品的一个本身价格,还有一个就是优惠价格...需要用到一个删除线. public class TestActivity extends Activity { private ...
- Newtonsoft.Json 通过 JObject 读取 json对像 超简单
/* json 格式的字符串解析 格式化 { "input": { "size": 193156, "type": "image/ ...
- php中的cookie用法
cookie和session都可以暂时保存在多个页面中使用的变量,但是它们有本质的差别. cookie存放在客户端浏览器中,session保存在服务器上.它们之间的联系是session ID一般保存在 ...
- FTP远程文件传输命令
使用ftp命令进行远程文件传输 ftp命令是标准的文件传输协议的用户接口.ftp是在TCP/IP网络上的计算机之间传输文件的简单有效的方法.它允许用户传输ASCII文件和二进制文件. 在ftp会话过程 ...
- 字节流InputStream/OutputStream
字节流InputStream/OutputStream 本篇将对JAVA I/O流中的字节流InputStream/OutputStream做个简单的概括: 总得来说,每个字节流类都有一个对应的用途, ...
- 因GIT默认忽略.dll文件导致的Visual Studio项目通过Bamboo编译失败
背景 由GIT管理的Visual Studio项目,使用Stash管理远端代码库,通过与Stash集成的Bamboo生成项目并发布 现象 Visual Studio项目本地生成成功,用SourceTr ...