MVC中我用的是net4.0环境
情景:查询页面新增时间查询
前台的easyui-datebox 的name=“DateS”传到后台为string格式,但是数据库中的DataTime 栏位格式为Datetime格式,MVC中那的连接数据库model中DataTime 为Datetime格式。我们通过查询来做比较,就得把前台传入后台的string转换为Datetime与Sql的DataTime 栏位值作比较。
问题:
连接数据库查询语句为:
oqcList=dboqc.dbset_oqc.Where(q=>( q.DataTime > Convert.ToDateTime(DateS)).ToList(); //直接连接数据库查询
错误:
报错为LINQ.to Entities不识别这个Convert.ToDateTime这个方法
解决问题:
var oqcList11=dboqc.dbset_oqc.ToList();//先把数据库中的数据全部捞出
List<OQCList> oqcList = new List<OQCList>();
oqcList =oqcList11.Where(q => (q.DataTime >=Convert.ToDateTime(DateS )||DateS == "") ).ToList();
存在的弊端:如果数据太过庞大,那么查询速度会很慢,影响效率。
而且如果把数据库查询出来的datetime栏位值存储起来,会出现上下午字段,这是受到本机PC系统中文时间文化影响。解决方案为:list<string> savetime=new list<string>();
savetime= oqcList[i].DataTime.ToString("yyyy-MM-dd HH:mm:ss", new System.Globalization.CultureInfo("zen-GB"));//红色字体意思为用英文时间文化,进行了格式化,将上下午进行去除。