zoukankan      html  css  js  c++  java
  • 用两个Calendar控件来控制数据库记录的读入

       

    先看实现效果吧!

       

    这个问题,一听起来,感觉很容易,我当初也是这么认为的,但是在做的过程中,产生了很多的小问题,最后搞了一整天才搞定。很多人都说实现这个功能用ASP ajax控件CalendarExtender很容易,但是这个我搞了半天没搞出来。因而自己使用了下面的方法。

    来看看步骤吧,

    1)首先自己新建一个sql server的数据库表(本例子是数据库DCM下的表ZDossier,其中有一个datatime类型的字段(本例子的是“上报时间”这个字段)并且自己在表中填一些记录。

    2)在页面上添加一个GridView,两个TextBox和两个ImageButton和一个Button以及两个Calendar控件,ID分别为:GridView1, txtCalendar1, txtCalendar2, IbtnCal1, IbtnCal2, Button1 Calendar1Calendar2,并将两个Calendar控件设置为不可见。

    3)分别单击IbtnCal1IbtnCal2获得Click时间,单击Calendar1, Calendar2获得SelectionChanged事件,其代码如下:

    protected void IbtnCal1_Click(object sender, ImageClickEventArgs e)

            {

                this.Calendar1.Visible = true;

            }

     

            protected void IbtnCal12_Click(object sender, ImageClickEventArgs e)

            {

                this.Calendar2.Visible = true;

     

            }

     

            protected void Calendar1_SelectionChanged(object sender, EventArgs e)

            {

                this.txtCalendar1.Text = this.Calendar1.SelectedDate.ToShortDateString();

                this.Calendar1.Visible = false;

            }

     

            protected void Calendar2_SelectionChanged(object sender, EventArgs e)

            {

                this.txtCalendar2.Text = this.Calendar2.SelectedDate.ToShortDateString();

                this.Calendar2.Visible = false;

            }

    (4)本篇的重点不再讲GridView的用法,因此GridView 的数据绑定设置就不再详述。getData()是从数据库中读入数据并绑定在GridView中,其代码如下:

     

    public void getData()

            {

                SqlConnection cn = new SqlConnection("server=ZHOUWEN;database=DCM_data;user=DCM;password=DCM;");

     

                cn.Open();

                DateTime dt1 = Convert.ToDateTime(this.txtCalendar1.Text);

                DateTime dt2 = Convert.ToDateTime(this.txtCalendar2.Text);

              

               string str = "SELECT [ID],[案卷编号], [任务号], [问题类别], [大类], [小类], [当前所处阶段], [上报时间], [立案时间], [案情描述],[位置说明] FROM [ZDossier] WHERE [当前阶段编号]<5 ORDER BY [上报时间] DESC ";

               

                SqlCommand cd = new SqlCommand(str, cn);

                SqlDataAdapter da = new SqlDataAdapter(cd);

                DataSet ds = new DataSet();

                da.Fill(ds, "ZDossier");

     

                DataTable DT1 = new DataTable();

                DataTable DT2 = new DataTable();

               

               //DT2获得表Tables["ZDossier"]的结构

                DT2 = ds.Tables["ZDossier"].Clone();

     

                DT1 = ds.Tables["ZDossier"];

                int n = DT1.Rows.Count;

                DateTime []DT=new DateTime[n];

              

              for (int i = 0; i < n; i++)

                {

                    DT[i] = Convert.ToDateTime(DT1.Rows[i]["上报时间"]);

                       

                    if ((DT[i]>=dt1) && (DT[i]<=dt2))

                        {

                        

                         DT2.Rows.Add(DT1.Rows[i].ItemArray);

                         

                        }

     

                }

             

               this.GridView1.DataSource = DT2.DefaultView;

               this.DataBind();

             

                cn.Close();

            }

    (5)单击Button1,激发它的Click事件,用来调用getData,显示结果。

         protected void Button1_Click(object sender, EventArgs e)

            {

                getData();

             }

    6)调试,运行,分别点两个ImageButton来选择两个时间,然后点Button1,看一下效果。这样就实现了通过这两个时间来控制数据的读入。

    一起学习GIS及其二次开发,一起进步!
  • 相关阅读:
    LINUX监控一:监控命令
    Kettle并行
    KETTLE集群搭建
    Solr报错Index locked for write for core '***'. Solr now longer supports forceful unlocking via 'unlockOnStartup'
    Solr json,xml等文件数据导入(添加索引)linux下操作
    python对solr进行查询、插入操作(GETPOST)
    Solr-5.3.1 dataimport 导入mysql数据
    解决MySQL数据导入报错Got a packet bigger than‘max_allowed_packet’bytes
    解决防火墙限制远程连接MySQL(导致错误10060可能之一)
    gensim加载word2vec训练结果(bin文件)并进行相似度实验
  • 原文地址:https://www.cnblogs.com/tuncaysanli/p/1338429.html
Copyright © 2011-2022 走看看