簡體   English   中英

查詢訪問數據庫時條件表達式中的數據類型不匹配

[英]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, '')";
                                   ^^^    ^^^

並且JoinedDateTime ,則不應嘗試插入DateTime.Now字符串表示形式。 只需將其作為DateTime插入為ODBC規范日期格式即可。

文件 ;

日期值必須根據ODBC規范日期格式來定界,或者由日期時間定界符(“#”)來定界。 否則,Microsoft Access會將值視為算術表達式,並且不會引發警告或錯誤。

暫無
暫無

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

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