当前位置: 代码迷 >> C# >> 数据库查询时间有关问题
  详细解决方案

数据库查询时间有关问题

热度:156   发布时间:2016-05-05 05:08:34.0
数据库查询时间问题
搜索时间,,             strSql = "select * from dHistory where datetime between '"+starttime+"' and '"+endtime+"'";         执行时就报myadapter.Fill(myds, "dHistory");这时出错,
把SQL改成下面语句就可以通过,strSql = "select * from dHistory";
什么问题呢,
数据库如下图




            DateTime starttime = Convert.ToDateTime("2014-02-20 00:00:00");
            DateTime endtime = Convert.ToDateTime("2014-02-25 00:00:00");
            
            
 
             strSql = "select * from dHistory where datetime between '"+starttime+"' and '"+endtime+"'";          
            //strSql = "select * from dHistory";
            OleDbDataAdapter myadapter = new OleDbDataAdapter(strSql, conn);
            private DataSet myds = new DataSet();
   
            myadapter.Fill(myds, "dHistory");
            dataGridView1.DataSource = null;
            
            dataGridView1.DataSource = myds.Tables["dHistory"];



------解决思路----------------------
首先我需要知道你到底用的什么数据库
不同数据库sql语法上略有不同(主要是类型和系统函数不一样)
------解决思路----------------------
datetime是关键字啊。。。你数据库字段就叫这个名字,其次在检查这个字段是否是时间类型。。。
------解决思路----------------------

strSql = "select * from dHistory where [datetime] between '"+starttime+"' and '"+endtime+"'";   

datetime字段加中括号试试,不行就把这个字段改掉,datetime是数据类型
  相关解决方案