c中如何使用in傳遞sql語句引數

2022-03-08 03:56:13 字數 2675 閱讀 9381

1樓:匿名使用者

傻,不會變通,直接用select * from table where id in(@a1,@a2,@a3.....)

明白了嗎?

也可以把id拆分出來,既然是id拆分出來以後全部轉成數字,再重新組合,就不用引數了,也不會被注入了。

2樓:

不可以,in使用引數時會強制轉換引數型別與條件欄位一致,不支援構造字串(如果欄位本身為varchar、char型,則in相當於只有一個條件值,而不是一組)

你可以使用exec,把整個sql當做引數來執行,如exec( 'select * from table where id in ( '+@ids+ ') ')

但是我感覺這樣實際上和直接構造sql語句沒區別,起不到防注入作用

3樓:關中布衣

照樣啊 select * from table where id in (@id) 只不過@id 要組織成 1,2,3 這樣的字串

4樓:

可以把 in(1,2,3) 這樣的值作為引數,如:string.fomat(".......in('','',''",id1,id2,id3);

不知道可以不可以,你可以試試。

5樓:匿名使用者

這個@id的值在要插入的時候,先判斷好啊,這個邏輯放在**裡面實現嘛~~~

判斷是不是數字和逗號分開的

6樓:匿名使用者

試一把不就知道了,同樣的方法傳試試看

c#**處理sql語句中in操作

7樓:

首先想到的就是拼接,拼接成以逗號間隔的即可。

string s = string.join(",",arraylist);

string.join方法有兩個引數,第一個表示要拼接的符號,第二個表示要拼接的陣列。

可參考msdn上實現拼接,在linq中也可以實現的各類的拼接的。儘量不要使用迴圈。

8樓:

可以拼接sql語句在in裡面,也可以使用迴圈生成多個引數.

9樓:

拼接,而且只能是一個一個拼接,引用型別注意單引號即可

c# 中引數化拼接sql語句插入資料庫

10樓:匿名使用者

三個步驟:

第一步:宣告資料庫連線物件:

sqlconnection connection=new sqlconnection(connectionstring);

第二步:宣告資料庫操作物件:

兩種途徑:

直接以字串拼接的方式形成sql語句,比如:

sqlstr="insert into usertab(uid,pwd) values('"+uidtxt+"','"+pwdtxt+"')";

sqlcommand command = new sqlcommand(sqlstr, connection);

以引數佔位的先行成形式語句,然後對引數實行繫結,比如:

sqlstr="insert into usertab(uid,pwd) values(@uidtxt,@pwdtxt)";

sqlcommand command = new sqlcommand(sqlstr, connection);

command.parameters.add("@uidtxt", sqldbtype.text);

command.parameters["@uidtxt"].value =uidtxt;

command.parameters.add("@pwdtxt", sqldbtype.text);

command.parameters["@pwdtxt"].value =uidtxt;

執行資料庫操作:

command.executenonquery();

connection.close();

11樓:匿名使用者

將你查詢的語句一條一條的插入到datatable裡面,然後批量插入資料庫表單中用下面的方法

public void inserttable(datatable table1,string tablename) // table1要插入的資料 tablename 資料庫表單名稱

sqlbulkcopy.close();}

12樓:匿名使用者

可以使用xml當引數之後 在用儲存過程接收,例如declare @idoc int

declare @doc nvarchar(max)set @doc ='1a

2b'exec sp_xml_preparedocument @idoc output, @doc

select

*from openxml (@idoc, '/roots/root',2)

with (id nvarchar(10),name nvarchar(100))

insert into ....

13樓:匿名使用者

新增引用oracle.dataaccess.dll

using oracle.dataaccess.client;

如何使用SQL語句實現如下更新,如何使用SQL語句實現如下更新?

如果是sqlserver可以這樣實現 先給你說思路,首先用到亂序排列,然後用到分割槽函式select from select row number over partition by staffno order by patindex substring grade,1,1 高,中,初 id,fro...

如何在sql語句中使用保留字

在sql語句中,有些特殊字元,是sql保留的。比如 等。我們可以先看看它們的用法。當需要查詢某資料時,加入條件語句,或著當你需要insert記錄時,我們用 來將字元型別的資料引起來。比如 select from customers where city london 當表的名字或列的名字中,含有空格...

sql語句刪除某欄位中資料sql語句刪除某欄位中一個資料

update 表名 set 欄位名 null where 欄位名 值 and 欄位2 值2 值就是你要刪除的資料 欄位2和值2值是用來定位值在表中的具體位置 只有前面的值很容易刪除同欄位等值的數 加上欄位2值2就可以精準定位 值2最好是唯一約束下面這是我寫的 update student set 年...