zoukankan      html  css  js  c++  java
  • 加载数据库表全部数据到GridView控件,但通过查询条件在GridView显示一行或几行数据

    拉一个GridView控件在前台设计,设置其所需要的全部属性。而后操作数据库,连接,写查询数据库表数据语句,绑定数据,显示数据,这些都是已经司空见惯的步骤了,可以说没什么可说的。这些东西,只要是学过开发的,我想没有不会的。今天我所讲的是,不仅在GridView控件里加载全部数据,一旦有了查询条件,查询出来的数据还显示在这个GridView中。意思就是下面的这两张图片:

    这张图片就是加载数据库表数据,显示所有的数据。一旦数据量大了,我们不好翻阅,就有了查询功能。其实,所谓的查询功能不过是查询语句的where条件,没有查询条件的时候不加载where条件,有查询条件的时候就以查询条件查询出来的数据显示。如下图:

     大致意思,就如上述,一个GridView控件显示数据,一个查询条件输入框以及触发查询条件的按钮。有必要在这里说一下,请看到第一个图中的TextBox输入框,框体里有一个提示文本“按设备名称查询...”,有两点提示:

       1)、当鼠标没有放在框体上时,框体有显示“按设备名称查询...”的文本字样,如果要输入查询条件的时候,框体里面的那个文本就会消失,再移开鼠标时又会显示其文本。实现这一功能要在cs后台代码Page_Load()方法中加载两句代码,

       this.txtSelect.Attributes.Add("onfocus", "if (this.value=='按设备名称查询...') this.value=''");
       this.txtSelect.Attributes.Add("onblur", "if (this.value=='') this.value='按设备名称查询...'");
       2)、在输入查询条件的时候,要判断框体内的值,所以一定得考虑它本身固有的文本'按设备名称查询...',就是下面的这个if判断代码,后面会有详细提及。

       if (this.txtSelect.Text.Trim() != "" && this.txtSelect.Text != "按设备名称查询...")

    前台界面的设计就不在详加介绍,主要说说后台代码的实现。。。

    首先,就是写数据库帮助类,链接数据库,操作数据库方法,如果您需要请到下面的链接下载(访问密码是:be3e)

       http://yunpan.cn/QePezBE6VC5sF 

    其次,我用到是StringBuilder这个可变的字符串,用它来分割查询语句,(需要添加引用:using System.Text;)。查询数据,返回dataset数据缓存。

            /// <summary>
            /// 在GridView中绑定设备信息表的数据(传参数)
            /// </summary>
            public DataSet GetList(string strWhere)
            {
                DataSet dset = null;//操作数据库结果
                string sql = "";//SQL语句
    
                try
                {
                    //打开数据库
                    helper.Connect();
                    StringBuilder strSql = new StringBuilder();
                    //查询xxt_registration表记录
                    sql = "select r.id,r.name,d.name tname,r.ip,r.port,r.time,r.location,r.installtime,d.misc from xxt_registration r full outer join xxt_devicetype d on r.type=d.id ";
                    strSql.Append(sql);
                    if (strWhere.Trim() != "")
                    {
                        strSql.Append(" where " + strWhere);
                    }
                    // 执行查询命令
                    dset = helper.Query(strSql.ToString());
                }
                catch (Exception E)
                {
                    E.Message.ToString();
                }
                finally
                {
                    //关闭数据库
                    helper.Close_Up();
                }
                return dset;
            }

    紧接着写一个绑定的方法,用于判断是否需要查询条件的使用。

            /// <summary>
            /// 在GridView中绑定xxt_registration表的数据
            /// </summary>
            public void BindData_Registration()
            {
                DataSet dset;
                StringBuilder strWhere = new StringBuilder();
                if (this.txtSelect.Text.Trim() != "" && this.txtSelect.Text != "按设备名称查询...")
                {
                    strWhere.AppendFormat("r.name like '{0}'", this.txtSelect.Text.Trim());
                }
                dset = GetList(strWhere.ToString());
                GridView.DataSource = dset;
                GridView.DataBind();
            }

    上面的代码无需解释,想必都看的懂。

    最后,将绑定方法加载到Page_Load()以及查询按钮的Click事件中,大致的功能就是这样。。。

    也许有更多的办法实现,这只是我的一家之言,仅供参考!!!

  • 相关阅读:
    1388:Lake Counting
    1253 Dungeon Master
    Ubuntu18.04下可以完美运行Quake3 Arena
    Windows下python3生成UTF8的CSV文件和sha256sum踩坑记录
    ROM后缀含义
    Ubuntu18.04下的模拟神器RetroArch
    廉价的SUP掌机拆解
    Python3连接MySQL
    Ubuntu18.04的网络管理netplan和防火墙ufw
    Ubuntu18.04命令行连接WiFi
  • 原文地址:https://www.cnblogs.com/litao4047/p/3135734.html
Copyright © 2011-2022 走看看