gpt4 book ai didi

c# - 从 C# Access SQL 查询时出现 "Data type mismatch in criteria expression"错误

转载 作者:太空宇宙 更新时间:2023-11-03 13:22:22 25 4
gpt4 key购买 nike

当我将多个条件与 WHERE 子句放在一起时,我遇到了以下错误。错误:- 条件表达式中的数据类型不匹配。

我的查询:-

this.query = "UPDATE [Attendance] SET [TimeOut]='" + DateTime.Now.ToShortTimeString() + "' WHERE [Emp_Id]='" + txtEmpId.Text + "'and[Date]='" + this.Date + "'";

最佳答案

在接受日期/时间值作为字符串时,Access SQL 往往相当灵活。但是,既然您真的应该无论如何都使用参数化查询,因为

  • 它们更安全(通过避免 SQL 注入(inject)问题),
  • 您不必为日期和文本值弄乱分隔符,
  • 您不必担心在文本值中转义引号,并且
  • 它们会正确处理日期,因此您的代码不会破坏设置为 dd-mm-yyyy 格式的机器上的日期,

考虑使用以下方法

this.query = "UPDATE [Attendance] SET [TimeOut]=? WHERE [Emp_Id]=? AND [Date]=?";
cmd.CommandText = this.query;
cmd.Parameters.AddWithValue("?", DateTime.Now.ToString("H:mm:ss"));
cmd.Parameters.AddWithValue("?", txtEmpId.Text);
cmd.Parameters.AddWithValue("?", this.Date);
cmd.ExecuteNonQuery();

关于c# - 从 C# Access SQL 查询时出现 "Data type mismatch in criteria expression"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23707396/

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