开发工具与关键技术:mvc

作者:黄志鹏


在我们做项目的时候,我们有时需要查找一部分的数据,由于可能在表格中的数据有成千上万条数据,我们不可能一一的根据单条数据去查询。在这个时候我们可以根据一段时间段去查询数据。先说说这种做法的逻辑。我们在数据库那边在我们需要操作的表中必须要有一个时间的字段。然后我们在项目中获取一个开始的时间和结束的时间,获取这两个时间后我们再拿来跟我们数据库那边的具体操作表的时间字段来比较,我们获取的开始时间要小于或等于数据库里头的时间字段,而我们获取的结束时间要大于或等于数据库那边的时间字段。这样我们在通过查询就可以筛选一段时间段的数据了。

接下来我们先说说它的代码:

首先我们在页面那边获取到两个时间类型的下拉框。一个是我们的开始时间和一个是我们的结束时间。然后我们再获取到它们两个的ID,然后我们把这两个ID,作为我们查询方法的两个String类型的参数,接下来就是我们要查询出我们需要操作的表格,无论是单表还是多表都是如此。我们表表查询出来后。我们便判断这两个ID,如果它两都不为空的话我们就转换它们们两的数据类型。分别把它们转换成ToDateTime的类型。

代码如下:

if (!string.IsNullOrEmpty(strtime)&&!string.IsNullOrEmpty(endtime))

{

            strtime = strtime.Trim();

            endtime = endtime.Trim();



            DateTime str = Convert.ToDateTime(strtime);//开始时间

            DateTime ent = Convert.ToDateTime(endtime);//结束时间





          

        }

分别把它们的数据类型都转换后,我们接下来的操作是要拿我们数据库里头的时间字段和我们这里的开始时间和结束时间用它们来比较。我们的比较方法就是我们获取的开始时间要小于或等于数据库里头的时间字段,而我们获取的结束时间要大于或等于数据库那边的时间字段。

下面是开始时间和结束时间的下拉框样式截图:

时间字段根据年度创建索引 根据时间段查询数据_时间字段根据年度创建索引

接下来就是我们的关键代码了,下面app是我们查询方法的名称

app = app.Where(p
 => Convert.ToDateTime(p.dateTime)
 >=str && Convert.ToDateTime(p.dateTime) <= ent).ToList();

如果我们需要转换一下时间的类型。我们需要到封装的类里面去转换一下它们的时间的类型。

代码如下:

public string date { set; get; }

public string dateTime {

       

        get { return date; }



        set {



            try

            {

                DateTime dt = Convert.ToDateTime(value);

                date = dt.ToString("yyyy-MM-dd");

            }

            catch (Exception)

            {

                date = value;

            }

        }

    }