错误代码如下:
标准表达式中数据类型不匹配。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 标准表达式中数据类型不匹配。源错误: 
行 94:         OleDbDataAdapter adapter = new OleDbDataAdapter(query, connection);
行 95:         DataSet ds = new DataSet();
行 96:         adapter.Fill(ds, "assetsTable");
行 97: 
行 98:         PagedDataSource objPds = new PagedDataSource(); 
 源文件: e:\net\admin\assets_query.aspx.cs    行: 96 堆栈跟踪: 
[OleDbException (0x80040e07): 标准表达式中数据类型不匹配。]
   System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) +992124
   System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +255
   System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +188
   System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +58
   System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +161
   System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) +116
   System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +4
   System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +130
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +287
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +92
   admin_assets_query.fenye() in e:\net\admin\assets_query.aspx.cs:96
   admin_assets_query.Page_Load(Object sender, EventArgs e) in e:\net\admin\assets_query.aspx.cs:19
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627 源码:query = " select * from assetsTable  where  loandate = '"+ Request["TextBox1"] +"'  ";
改成过Convert.ToDateTime(str).ToString("yyyy-MM-dd"),也不行,错误代码一样!
loandate 在access数据库里是"日期/时间"类型。

解决方案 »

  1.   

    你提交的数据类型和Access里的数据类型不一样, 检查一下你的form里
      

  2.   

    日期两边加上 # , 或者把 loandate 转成字符型。
      

  3.   

    select * from assetsTable where loandate = #2011-5-8 11:00:00# 这样有问题?另外,时间都是带时,分,秒的。你确认从UI过来的日期带时间?
      

  4.   

    从上一页form传过来的就是不带时,分,秒的
      

  5.   


    query = "select * from assetsTable where loandate = #"+ Request["TextBox1"] +" 00:00:00#";
      

  6.   

    你首先检查下你传递过来的值是什么格式的?
    yyyy/MM/dd ???还是 2011-05-09 还是2011-5-9 还是2011/05/09 还是2011/5/9 ???然后根据你传递过来的时间串格式,进行调整,然后跟 数据库表assetsTable 中的loandate 字段匹配就可以。query = " select * from assetsTable where loandate = '"+ Request["TextBox1"] +"' ";