sql查询语句的where条件里可以使用参数吗?
9个回答
2015-12-08 · 知道合伙人软件行家
关注
展开全部
从提升性能和安全的角度(防注入)来讲,建议使用参数化方式来处理。
示例如下:
//实例化Connection对象
SqlConnection connection = new SqlConnection("server=localhost;database=pubs;uid=sa;pwd=''");
//实例化Command对象
SqlCommand command = new SqlCommand("select * from UserInfo where sex=@sex and age>@age", connection);
//第一种添加查询参数的例子
command.Parameters.AddWithValue("@sex", true);
//第二种添加查询参数的例子
SqlParameter parameter = new SqlParameter("@age", SqlDbType.Int);//注意UserInfo表里age字段是int类型的
parameter.Value = 30;
command.Parameters.Add(parameter);//添加参数
SqlDataReader reader = command.ExecuteReader();
示例如下:
//实例化Connection对象
SqlConnection connection = new SqlConnection("server=localhost;database=pubs;uid=sa;pwd=''");
//实例化Command对象
SqlCommand command = new SqlCommand("select * from UserInfo where sex=@sex and age>@age", connection);
//第一种添加查询参数的例子
command.Parameters.AddWithValue("@sex", true);
//第二种添加查询参数的例子
SqlParameter parameter = new SqlParameter("@age", SqlDbType.Int);//注意UserInfo表里age字段是int类型的
parameter.Value = 30;
command.Parameters.Add(parameter);//添加参数
SqlDataReader reader = command.ExecuteReader();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以。
Declare @str varchar(1000),@tID varchar(30)
set @tID='001'
set @str='select * from student where tID = '''+@tID+''''
exec @str
Declare @str varchar(1000),@tID varchar(30)
set @tID='001'
set @str='select * from student where tID = '''+@tID+''''
exec @str
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果使用参数,需在运行前声明并赋值
比如
declare @tID CHAR(8)
SET @tID ='0001' (OR SET @tID = SELECT XXX FROM XXX )
select * from student where tID = @tID
比如
declare @tID CHAR(8)
SET @tID ='0001' (OR SET @tID = SELECT XXX FROM XXX )
select * from student where tID = @tID
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一楼自己不知道怎么乱说呢
t_sql
DECLARE @tID AS VARCHAR(10)
SET @tID = 'abc'
SELECT @tID
t_sql
DECLARE @tID AS VARCHAR(10)
SET @tID = 'abc'
SELECT @tID
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询