zoukankan      html  css  js  c++  java
  • 组合查询

    
    
    组合查询
    : (一)首先是在Form1的窗口里放两个flowLayoutPanel1 (二)然后写查询条件: (三)这个时候的问题是,不能让性别和出生年月的下拉框更改,并且有默认项 (四)修改名字,然后设置默认项: public Form1() { InitializeComponent(); cb_sex.SelectedIndex = 0; cb_bir.SelectedIndex = 0; } (五)点击查询的按钮,写点击事件 private void button1_Click(object sender, EventArgs e) { int tsqlCount = 0; //判断各个查询条件,【拼接sql语句】注意判断后的拼接 1. string tsql = "select *from Users"; 6. Hashtable hs = new Hashtable(); 2. if (txt_name.Text.Trim().Length > 0) 判断名字 { tsql += " where NickName like @name"; hs.Add("@name", "%" + txt_name.Text.Trim() + "%"); 【因为要把值带进去,使用占位符后没有值了,所以写一个哈希表集合】 tsqlCount++; } 3. if (cb_sex.SelectedIndex != 0) 判断性别 { if (tsqlCount == 0) tsql += " where"; else tsql += " and"; tsql += " Sex=" + (cb_sex.SelectedIndex == 1 ? "1" : "0"); tsqlCount++; } 4. if (txt_bir.Text.Trim().Length > 0) 判断年份 { if (tsqlCount == 0) tsql += " where"; else tsql += " and"; 如果前面有where则在后面加and,如果没有则加的是where tsql += " Year(Birthday) " + cb_bir.SelectedItem + " @bir"; hs.Add("@bir", txt_bir.Text.Trim()); tsqlCount++; } 5. label4.Text = tsql; //将sql语句执行,将结果绑定到界面 7. List<Users> uuulist = new UsersData().SelectALL(tsql, hs); 8. DataBind(uuulist); 加载刷新方法,把uuulist放到方法里面去 } 这里需要一个查询方法 public List<Users> SelectALL(string Tsql, Hashtable hs) { List<Users> ulist = new List<Users>(); conn.Open(); cmd.CommandText = Tsql; cmd.Parameters.Clear(); 【清空一下,要放占位符,防注入攻击,注意这里的占位符是哈希表,哈希表在这个时候开始登场,这里比较难理解】 foreach (string s in hs.Keys) 4.哈希表集合遍历 { cmd.Parameters.AddWithValue(s, hs[s]); } SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { Users u = new Users(); u.Ids = Convert.ToInt32(dr["Ids"]); u.Ucode = dr["Ucode"].ToString(); u.UserName = dr["UserName"].ToString(); u.PassWord = dr["PassWord"].ToString(); u.NickName = dr["NickName"].ToString(); u.Sex = Convert.ToBoolean(dr["Sex"]); u.Birthday = Convert.ToDateTime(dr["Birthday"]); u.Nation = dr["Nation"].ToString(); ulist.Add(u); } conn.Close(); return ulist; } (六)默认是查询全部 写一句代码: DataBind(new UsersData().SelectALL("select *from Users", new Hashtable()));
  • 相关阅读:
    自己写的基类:Forms身份验证类、客户端事件类,序列化类下载
    毕业设计上线啦!跳蚤部落与基于Comet的WebIM系统开发
    域名解析碎片整理 《不同的子域名解析到同一服务器下不同的网站》
    Mac 命令行大全
    position 事件 zindex
    vue 微信公众号网页开发 跳转小程序 踩坑
    React 笔记
    我对架构师的理解(如何成为一个合格的架构师)
    听过我爸是李刚,你听说过我妈是上海人不?
    Lucene.NET打造站内搜索引擎
  • 原文地址:https://www.cnblogs.com/yunpeng521/p/7215957.html
Copyright © 2011-2022 走看看