DataTable.SELECT日期类型筛选处理


 

初始化:

 public DataTable1()
        {
            InitializeComponent();
            Init();
        }

        private void Init()
        {
            dt = new DataTable("cart");
            DataColumn dc1 = new DataColumn("prizename", Type.GetType("System.String"));
            DataColumn dc2 = new DataColumn("point", Type.GetType("System.Int16"));
            DataColumn dc3 = new DataColumn("number", Type.GetType("System.Int16"));
            DataColumn dc4 = new DataColumn("totalpoint", Type.GetType("System.Int64"));
            DataColumn dc5 = new DataColumn("prizeid", Type.GetType("System.String"));
            DataColumn dc6 = new DataColumn("Timer", Type.GetType("System.DateTime"));
            dt.Columns.Add(dc1);
            dt.Columns.Add(dc2);
            dt.Columns.Add(dc3);
            dt.Columns.Add(dc4);
            dt.Columns.Add(dc5);
            dt.Columns.Add(dc6);
            //以上代码完成了DataTable的构架,但是里面是没有任何数据的
            //Random r = new Random();
            for (int i = 0; i < 10; i++)
            {
                //int a = r.Next(1, 100);
                DataRow dr = dt.NewRow();
                dr["prizename"] = "娃娃"+i;
                dr["point"] = 10;
                dr["number"] = i;
                dr["totalpoint"] = 10;
                dr["prizeid"] = "001";
                dr["Timer"] = DateTime.Now.AddDays(i);
                dt.Rows.Add(dr); 
            }
            dataGridView1.DataSource = dt;
        }

查询:

private void select_Click(object sender, EventArgs e)
        {
            DateTime  dtend = dateTimePicker1.Value;
            DateTime dtstart = dateTimePicker2.Value;  
            var dd = dt.AsEnumerable(); 
            //方法1
            //var dtr = (from stu in dd
            //           where stu.Field<System.DateTime>("Timer") >= dtstart
            //           where stu.Field<System.DateTime>("Timer") <= dtend
            //           select stu);
            //var res1 = dd.Where(x => x.Field<int>("number") > 2 && x.Field<int>("number") < 5);
            //方法2
            var dtr = dd.Where(x => x.Field<DateTime>("Timer") >= dtstart && x.Field<DateTime>("Timer") <= dtend);
            //方法三
            //DataTable dt1 = new DataTable();
            //for (int i = 0; i < dt.Rows.Count; i++)
            //{
            //    DateTime di = (DateTime)dt.Rows[i]["Timer"];
            //    bool a = di > dtstart;
            //    bool b = di < dtend;
            //    if ((DateTime)dt.Rows[i]["Timer"] > dtstart && (DateTime)dt.Rows[i]["Timer"] < dtend)
            //    {
            //        dt1.Rows.Add(dt.Rows[i]);
            //    }
            //}
            DataTable newdt = dtr.CopyToDataTable<DataRow>();
            dataGridView1.DataSource = newdt;

        }

  初始化:

Init()

 

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM