sql查詢語句的where條件裡可以使用引數嗎

2021-04-18 04:56:50 字數 1820 閱讀 3239

1樓:

從提升效能和安全的角度(防注入)來講,建議使用引數化方式來處理。

示例如下:

//例項化connection物件

sqlconnection connection = new sqlconnection("server=localhost;database=pubs;uid=sa;pwd=''");

//例項化command物件

sqlcommand command = new sqlcommand("select * from userinfo where ***=@*** and age>@age", connection);

//第一種新增查詢引數的例子

command.parameters.addwithvalue("@***", true);

//第二種新增查詢引數的例子

sqlparameter parameter = new sqlparameter("@age", sqldbtype.int);//注意userinfo表裡age欄位是int型別的

parameter.value = 30;

command.parameters.add(parameter);//新增引數

sqldatareader reader = command.executereader();

2樓:匿名使用者

你的寫法是對的,只要保證在執行這條語句時,@tid有值就行。

3樓:匿名使用者

這個是儲存過程的寫法,無論如何,執行sql語句時,引數都應該接收到值。在程式**裡,構成sql語句的字串可以這樣寫,然後格式化字串時把值賦進去。例如:sprintf等。

4樓:微胖子

如果使用引數,需在執行前宣告並賦值

比如declare @tid char(8)set @tid ='0001' (or set @tid = select *** from *** )

select * from student where tid = @tid

5樓:匿名使用者

完全可以。但在執行查詢前須給@tid賦值,否則沒什麼意義。

declare @tid int

set @tid = xx

select * from student where tid = @tid

6樓:匿名使用者

一樓自己不知道怎麼亂說呢

t_sql

declare @tid as varchar(10)set @tid = 'abc'

select @tid

7樓:近火樓臺

可以。declare @str varchar(1000),@tid varchar(30)

set @tid='001'

set @str='select * from student where tid = '''+@tid+''''

exec @str

8樓:物慾他們比

不行! 這樣肯定不行的

想在sql語句中新增一個where條件,這個where條件是如果傳過來的引數有就新增,沒傳引數過來就預設不新增 5

9樓:匿名使用者

select * from table_name where 1 = 1 [and id = '***']

10樓:軒轅小珂

where .....and (月份=引數 or引數 is null)

應該能用

SQL查詢資料語句問題,SQL查詢資料語句問題

取n到m行 1.select top m from tablename where id not in select top n id from tablename order by id asc desc 2.select top m into 臨時表 或表變數 from tablename or...

sql查詢語句

商品重量有字元肯定不可以直接獲得乘積,假設商品數量和商品重量分別欄位名 amount和weight,新獲取的值存在總克數total中,名稱trade,假設商品id 1,解決辦法如下 select amount cast substring weight,1,len weight 1 as float...

sql查詢指定記錄的條數,sql語句查詢表內資料條數?

sql 使用 count可以統計指定記錄的條數 結合group by 可以統計不同分類的條目數 例子 id name 1 xk 2 kl 3 xk 統計name xk 的條數 select count number from table where name xk 結果number2 關注 upda...