C# &引用;“条件表达式中的数据类型不匹配”;从C访问SQL查询时出错#
当我把多个条件和WHERE子句放在一起时,我得到了下面的错误。 错误:-条件表达式中的数据类型不匹配 我的问题是:-C# &引用;“条件表达式中的数据类型不匹配”;从C访问SQL查询时出错#,c#,ms-access,C#,Ms Access,当我把多个条件和WHERE子句放在一起时,我得到了下面的错误。 错误:-条件表达式中的数据类型不匹配 我的问题是:- this.query = "UPDATE [Attendance] SET [TimeOut]='" + DateTime.Now.ToShortTimeString() + "' WHERE [Emp_Id]='" + txtEmpId.Text + "'and[Date]='" + this.Date + "'"; 当接受日期/时间值作为字符串时,Access SQL往往非
this.query = "UPDATE [Attendance] SET [TimeOut]='" + DateTime.Now.ToShortTimeString() + "' WHERE [Emp_Id]='" + txtEmpId.Text + "'and[Date]='" + this.Date + "'";
当接受日期/时间值作为字符串时,Access SQL往往非常灵活。但是,既然确实应该使用参数化查询,因为
- 它们更安全(通过避免SQL注入问题)
- 您不必弄乱日期和文本值的分隔符
- 您不必担心在文本值中转义引号,并且
- 它们可以正确处理日期,这样您的代码就不会在设置为
格式的机器上损坏日期dd-mm-yyyy
this.query=“更新[考勤]设置[超时]=?其中[员工Id]=?和[日期]=?”;
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();
这些日期字段是否需要签名?研究如何使用参数化查询。这可能有助于: