我有一个变量string session_start_time
从数据库获得结果,是 - 2017-07-15 03:54:37.000
但是以下查询会导致错误:
select *
from surf_ads_views
where date_time >= " + session_start_time + "
and member_id = " + member_id
错误如下:
类型' System.Data.SqlClient.SqlException'的异常发生在System.Data.dll中但未在用户代码中处理
其他信息:' 3'附近的语法不正确。
我无法弄清楚,为什么会导致错误
答案 0 :(得分:2)
您的特殊问题是您正在使用单引号注入需要包装的字符串。
...date_time >='" + session_start_time + "' and ...
话虽这么说,您应该使用参数而不是SQL注入,因为它将解决这些类型的问题并提高您的安全性。
答案 1 :(得分:0)
您应该将属性类型从String更改为DateTime,并让数据库在配置时管理类型,并使用存储过程而不是SQL语句
创建程序dbo.SelectData @StartDate DateTime 如 select * from surf_ads_views where date_time = @StartDate