我有一个运行良好的 C# 窗口应用程序,包括报告生成,但是当我尝试生成报告时突然出现错误。
ERROR [42000] [MySQL][ODBC 5.1 Driver][mysql-5.0.16-nt]您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解要使用的正确语法...
有错误的行是一条Select
语句,所以我在MySQL查询浏览器上试了一下,它执行成功,没有遇到错误。
你很容易受到SQL Injection
. 使用参数化查询。
Select " + FieldName + " from tblYearToDate where EmployeeID = " +EmployeeID + " and YTDYear = '" + Year + "'
如果没有针对Year
我的验证可以输入;DROP TABLE tblYearToDate
我相信原始错误的原因是因为EmployeeId
需要包裹在'
s.
要使用参数,只需执行以下操作:
MySqlCommand cmd = new MySqlCommand("SELECT FieldNAme FROM tblYearToDate WHERE EmployeeId = @EmployeeId AND YTDYear = @Year");
cmd.Paramaters.Add("@EmployeeId").Value = EmployeeID
cmd.Paramaters.Add("@Year").Value = Year
cmd.ExecuteNonQuery();