[英]Data type mismatch in criteria expression when Query Access DB
我在將行插入到Access數據庫時遇到問題。 我不斷收到“條件表達式中的數據類型不匹配”。 我嘗試了很多不同格式的查詢,但似乎無法弄清楚我要去哪里。
public void addUserToDB(string username)
{
string updateStr = "Insert Into Users ([Username], [Currency], [Joined], [Online], [Notes]) "
+ "Values ( ?, '0', ?, 'Yes', '')";
OleDbCommand update = new OleDbCommand(updateStr, con);
update.Parameters.Add("", OleDbType.VarChar).Value = username;
update.Parameters.AddWithValue("","'#" + DateTime.Now.ToString("G") + "#'");
update.Parameters.AddWithValue("","'#" + DateTime.Now.ToString("G") + "#'");
execute(update);
}
這不是我的連接字符串或其他任何東西,因為我的所有其他查詢都能正常工作。 這里一定有東西。 我假設可能與日期時間有關。
訪問數據庫:
用戶名:ShortText
貨幣:數字
已加入:“常規日期”格式的日期/時間
在線:是/否
注意:ShortText
由於您的“ Currency
列為“ Number
並且“ Online
似乎Yes/No
( 它存儲1位) ,因此您不需要在它們之間使用單引號。 使用單引號會威脅它們作為字符。
string updateStr = "Insert Into Users ([Username], [Currency], [Joined], [Online], [Notes]) "
+ "Values ( ?, 0, ?, Yes, '')";
^^^ ^^^
並且Joined
是DateTime
,則不應嘗試插入DateTime.Now
字符串表示形式。 只需將其作為DateTime
插入為ODBC規范日期格式即可。
從文件 ;
日期值必須根據ODBC規范日期格式來定界,或者由日期時間定界符(“#”)來定界。 否則,Microsoft Access會將值視為算術表達式,並且不會引發警告或錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.