[英]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.