ACCESS数据中用的是短日期格式
        OleDbConnection OleDbcon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + Server.MapPath(@"~\QiXin.mdb"));
        try
        {
            DateTime MyDate1 = Convert.ToDateTime(this.TextBoxStartDate.Text.ToString());
            DateTime MyDate2 = Convert.ToDateTime(this.TextBoxEndDate.Text.ToString());            string OleDbstr = "select * from DaoDaXieChe where RiQi between'" + MyDate1.ToString("yyyy-mm-dd") + "'and '" + MyDate2.ToString ("yyyy-mm-dd")  + "' order by RiQi";
            //string OleDbstr = "select * from DaoDaXieChe where RiQi between '2007-7-6' and '2007-8-5' order by RiQi";
            //OleDbcon = new OleDbConnection(strCon);
            OleDbDataAdapter myda = new OleDbDataAdapter(OleDbstr, OleDbcon);
            DataSet myds = new DataSet();
            OleDbcon.Open();
            myda.Fill(myds);
            this.GridView1.DataSource = myds;
            this.GridView1.DataBind();
           
        }
              catch (Exception error)
        {
            Response.Write("<script>alert('您输入的时间格式有误,请输入****-**-**格式的日期')</script>");
            this.TextBoxStartDate.Text  = "处理失败!原因为:" + error.ToString();
        }
        finally
        {
            //关闭数据库连接
            OleDbcon.Close();
        }

解决方案 »

  1.   


    access 对于日期查询是有格式要求的" and (Apply_Time >=  #" + BeginTime + "# and Apply_Time <= #"+ EndTime +"#)";
      

  2.   

    string OleDbstr = "select * from DaoDaXieChe where RiQi between'#" + MyDate1.ToString("yyyy-mm-dd") + "#'and '#" + MyDate2.ToString ("yyyy-mm-dd")  + "#' order by RiQi";
    还是不行呢
      

  3.   


    string OleDbstr = "select * from DaoDaXieChe where RiQi >= #" + MyDate1.ToString("yyyy-mm-dd") + "# and RiQi <= #" + MyDate2.ToString ("yyyy-mm-dd")  + "# order by RiQi";试试
      

  4.   

    处理失败!原因为:System.Data.OleDb.OleDbException: 日期的语法错误 在查询表达式 'RiQi >= #2007-00-10# and RiQi <= #2007-00-16#' 中。   在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)   在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)   在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)   在 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)   在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)   在 System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)   在 System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)   在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)   在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)   在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)   在 _Default.Button3_Click(Object sender, EventArgs e) 位置 d:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\WebSites\日期查询\Default.aspx.cs:行号 49
      

  5.   

    ToString ("yyyy-mm-dd") 
    改成ToString ("yyyy-MM-dd")
      

  6.   

    或者 MyDate2.ToShortDateString().ToString()
      

  7.   


    保证  开始日期小于结束日期,date >= 小日期  and date <= 大日期你把日期字段改回去,改成  日期/时间  类型
      

  8.   

    改回去了啊
    但是还是没有数据太郁闷了
    这段前台自动生成的就可以查
     <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/QiXin.mdb"
                SelectCommand="SELECT * FROM [DaoDaXieChe] WHERE (([RiQi] >= ?) AND ([RiQi] <= ?))">
                <SelectParameters>
                    <asp:Parameter DefaultValue="2007-7-14" Name="RiQi" Type="DateTime" />
                    <asp:Parameter DefaultValue="2007-7-19" Name="RiQi2" Type="DateTime" />
                </SelectParameters>
      

  9.   

    还是用varhcar类型的吧.access太弱,date更新容易出这样的错.
      

  10.   

    string OleDbstr = "SELECT * FROM [DaoDaXieChe] WHERE (([RiQi] >= #" + MyDate1.ToShortDateString().ToString() + "#) AND ([RiQi] <= #" + MyDate2.ToShortDateString().ToString() + "#))";再试 
      

  11.   

    看清获取的date格式要与数据库中一致
    比较时间就是这样了
    where date>#2000-2-5# and date<#2008-5-2#