C#和MS Access之间的数据类型不匹配?

您的忠诚

我有一条SQL语句在MS Access数据库上的C#中引起错误,该错误似乎间歇性地起作用。我想我找到了问题所在,但不明白答案或没有解决方案。

我在C#中的SQL语句编写如下:

// note that Start and StartLog are both nullable variables and ProfileID variable is a string

cmd = new OleDbCommand("INSERT INTO shifts(profile_id, start, start_log) " +
                "VALUES (@profile_id, @start, @start_log);");
cmd.Parameters.AddWithValue("@profile_id", ProfileID);
cmd.Parameters.AddWithValue("@start", Start.Value);
cmd.Parameters.AddWithValue("@start_log", StartLog.Value);

shifts表包括以下列:

profile_id is a string
start is a date/time
start_log is a date_time

我尝试使用从调试器提取的以下数据执行该语句:

profile_id -> "16078965744"
start -> {1/10/2015 1:30:00 PM}
start_log -> {1/10/2015 1:23:13 PM}

并得到以下异常:

System.DataOleDb.OleDbException: {"Data type mismatch in criteria expression."}

我注意到,如果我按如下所示在Start.Value和StartLog.Value上调用ToString(),它将起作用:

cmd = new OleDbCommand("INSERT INTO shifts(profile_id, start, start_log) " +
                "VALUES (@profile_id, @start, @start_log);");
cmd.Parameters.AddWithValue("@profile_id", ProfileID);
cmd.Parameters.AddWithValue("@start", Start.Value.ToString());
cmd.Parameters.AddWithValue("@start_log", StartLog.Value.ToString());

我的怀疑是问题与Steve的SO答案有关,即毫秒部分是通过更早调用DateTime.Now引起异常的。

有人对此有解决方案或知道问题在哪里吗?

我怀疑会解决我的问题,但坦率地说,我是一个初学者,整个磨难使我感到困惑。

这个问题就这个问题出在这里是没有得到解决,我调查。

汤普森(Gord Thompson)

是的,如果您从DateTime.Now.NET的早期调用中派生了参数值,几乎可以肯定是毫秒导致问题的原因

您可以使用在此处引用的上一个问题的答案中的方法来消除毫秒数,也可以将参数格式化为yyyy-MM-dd HH:mm:ss字符串,然后让Access OLEDB将其转换回AccessDate/Time值,即,

cmd.Parameters.AddWithValue("@profile_id", ProfileID);
cmd.Parameters.AddWithValue("@start", Start.Value.ToString("yyyy-MM-dd HH:mm:ss"));
cmd.Parameters.AddWithValue("@start_log", StartLog.Value.ToString("yyyy-MM-dd HH:mm:ss"));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将记录从C#保存到Access时“条件表达式中的数据类型不匹配”

来自分类Dev

C#从Access SQL查询中的“条件表达式中的数据类型不匹配”错误

来自分类Dev

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

来自分类Dev

MS Access VBA数据类型功能不匹配

来自分类Dev

数据类型text和varchar在C#中等于操作符不兼容

来自分类Dev

C#和MS Access之间的数据类型不匹配?

来自分类Dev

将SQLite导入MS-Access:列之间的数据类型不匹配

来自分类Dev

MS Access中存在空白记录时,VBA数据类型不匹配

来自分类Dev

数据类型不匹配Access 2010

来自分类Dev

SQL变量数据类型和表列数据类型之间的区别

来自分类Dev

数据类型不匹配和冲突的编译器

来自分类Dev

在MS Access Update语句的WHERE子句中使用替换功能时,获取数据类型不匹配错误

来自分类Dev

Spark中发现相同和所需数据类型的“错误:类型不匹配”

来自分类Dev

SQL查询中的MS Access VBA数据类型不匹配错误

来自分类Dev

如何使用Ms Access日期/时间扩展数据类型

来自分类Dev

C ++不报告数据类型不匹配的错误或警告

来自分类Dev

混淆矩阵错误:实际值和预测值之间的数据类型不匹配

来自分类Dev

制作类型:添加数据类型和不匹配类型的评估器

来自分类Dev

ASP C#更新访问数据库中的条件表达式中的数据类型不匹配

来自分类Dev

Access中的数据类型不匹配

来自分类Dev

ms-access查询“类型不匹配”

来自分类Dev

CRITERIA EXPRESSION中的数据类型不匹配错误(ms Access)

来自分类Dev

数据类型不匹配Access 2010

来自分类Dev

Spark中发现相同和所需数据类型的“错误:类型不匹配”

来自分类Dev

MS-Access SQL中的“条件表达式中的数据类型不匹配”

来自分类Dev

条件表达式Excel C#中的数据类型不匹配

来自分类Dev

C# SQL Server 命令数据类型不匹配

来自分类Dev

条件表达式 ms-access c# 中的数据类型不匹配

来自分类Dev

SQL Server int 和 MS Access VBA long 数据类型之间的数据类型转换错误

Related 相关文章

  1. 1

    将记录从C#保存到Access时“条件表达式中的数据类型不匹配”

  2. 2

    C#从Access SQL查询中的“条件表达式中的数据类型不匹配”错误

  3. 3

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

  4. 4

    MS Access VBA数据类型功能不匹配

  5. 5

    数据类型text和varchar在C#中等于操作符不兼容

  6. 6

    C#和MS Access之间的数据类型不匹配?

  7. 7

    将SQLite导入MS-Access:列之间的数据类型不匹配

  8. 8

    MS Access中存在空白记录时,VBA数据类型不匹配

  9. 9

    数据类型不匹配Access 2010

  10. 10

    SQL变量数据类型和表列数据类型之间的区别

  11. 11

    数据类型不匹配和冲突的编译器

  12. 12

    在MS Access Update语句的WHERE子句中使用替换功能时,获取数据类型不匹配错误

  13. 13

    Spark中发现相同和所需数据类型的“错误:类型不匹配”

  14. 14

    SQL查询中的MS Access VBA数据类型不匹配错误

  15. 15

    如何使用Ms Access日期/时间扩展数据类型

  16. 16

    C ++不报告数据类型不匹配的错误或警告

  17. 17

    混淆矩阵错误:实际值和预测值之间的数据类型不匹配

  18. 18

    制作类型:添加数据类型和不匹配类型的评估器

  19. 19

    ASP C#更新访问数据库中的条件表达式中的数据类型不匹配

  20. 20

    Access中的数据类型不匹配

  21. 21

    ms-access查询“类型不匹配”

  22. 22

    CRITERIA EXPRESSION中的数据类型不匹配错误(ms Access)

  23. 23

    数据类型不匹配Access 2010

  24. 24

    Spark中发现相同和所需数据类型的“错误:类型不匹配”

  25. 25

    MS-Access SQL中的“条件表达式中的数据类型不匹配”

  26. 26

    条件表达式Excel C#中的数据类型不匹配

  27. 27

    C# SQL Server 命令数据类型不匹配

  28. 28

    条件表达式 ms-access c# 中的数据类型不匹配

  29. 29

    SQL Server int 和 MS Access VBA long 数据类型之间的数据类型转换错误

热门标签

归档