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