gpt4 book ai didi

c# - 条件表达式中的数据类型不匹配 | Access 、OleDb、C#

转载 作者:太空狗 更新时间:2023-10-29 21:42:21 25 4
gpt4 key购买 nike

我使用 C# 从 MS Access 读取/更新数据。我的代码是:

public static void UpdateLastLogin(int userid, DateTime logintime) ///logintime = DateTime.Now
{
string sql = @"UPDATE [Customers] SET [LastLogin]=?";
OleDbParameter[] prms = new OleDbParameter[] {
new OleDbParameter("@LastLogin",logintime)
};
using (DAL dal = new DAL())
{
dal.UpdateRow(sql, false, prms);
}
}

说到日期,我遇到了麻烦。这会引发“条件表达式中的数据类型不匹配”。错误。(我删除了 WHERE 子句以使其更简单)我应该附上 [LastLogin]= 吗?带单引号的问号、# 符号 .. 无济于事。非常感谢任何有关如何使用 Access 和 OleDb 提供程序处理 DateTime 对象的线索。

提前致谢。

最佳答案

OleDb 和日期存在一个已知问题。尝试做类似的事情:

OleDbParameter p = parameter as OleDbParameter;
if (null == p)
parameter.DbType = DbType.DateTime;
else
p.OleDbType = OleDbType.Date;

或者使用显式格式字符串:

value.ToString("yyyy-MM-dd hh:mm:ss")

关于c# - 条件表达式中的数据类型不匹配 | Access 、OleDb、C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1577901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com