簡體   English   中英

使用C#查詢Access 2007 DateTime

[英]Querying Access 2007 DateTime with C#

我剛剛花了最后幾個小時嘗試做一些我認為非常簡單的事情。 當我嘗試在Access 2007數據庫上運行帶有日期的參數化查詢時,遇到“標准表達式中的數據類型不匹配”錯誤。 數據庫中的問題列是“日期/時間”數據類型。

在一個簡化的示例中-

dataCommand.CommandText "SELECT * FROM tblData WHERE IDate > #24/07/2013 16:54:51#"

這可行。 但是,一旦我嘗試參數化日期,就會遇到錯誤。 所以..

dataCommand.CommandText = "SELECT * FROM tblData WHERE IDate > @BackSearchDate"
....
dataCommand.Parameters.Add(new OleDbParameter("@BackSearchDate", backSearchDate))

會遇到錯誤。 我試圖以多種方式提供backSearchDate變量。 DateTime,各種格式的字符串等不起作用。

我發現此頁面表明這是一個已知的錯誤-但我也無法使該頁面上的任何變通辦法正常工作。 我很沮喪。

在此先感謝您的幫助。

所以我的意思是:

dataCommand.CommandText = "SELECT * FROM tblData WHERE IDate > @BackSearchDate"

編輯

查看Gord Thompson的答案,建議您應該嘗試:

var conn = new OleDbConnection(@"ConnString");
conn.Open();
var cmd = new OleDbCommand(
                "SELECT * FROM tblData WHERE IDate > @BackSearchDate", 
                conn);
cmd.Parameters.AddWithValue("@BackSearchDate", new DateTime(backSearchDate));
OleDbDataReader rdr = cmd.ExecuteReader();

對於以后遇到此問題的任何人-如果以以下方式添加參數,它似乎可以工作:

DbParameter p = dataCommand.CreateParameter();
p.ParameterName = "@BackSearchDate";
p.Value = backSearchDate;
p.DbType = DbType.Date;
dataCommand.Parameters.Add(p);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM