C 平時碰見的問題 4

2022-01-19 11:28:14 字數 1095 閱讀 1140

string keyword="value"; // 要模糊匹配的值

錯誤示範:

sql:   string strsql="select * from [table]  where [field] like %@field%";

引數: system.data.sqlclient.sqlparameter parms = new ;

parms[0].value = keyword ;

輸出:ado.net 給我們輸出的引數 sql語句 還是原原本本的 select * from [table]  where [field] like %@field%  sql語句錯誤

解決辦法(1):

sql :   string strsql="select * from [table]  where [field] like'%'+@field+'%' "

這樣ado.net 就能將引數正確的輸入了

解決辦法(2):

sql:    string strsql="select * from [table]  where [field] like @field";

引數: system.data.sqlclient.sqlparameter parms = new ;

parms[0].value ="%"+keyword +"%";

分析:

我們期望最後傳輸到資料庫的 like語句應該是: select * from [table] like [field] like'%value%';  

直接%@field%,汙染了ado.net的引數標示

@符號導致無法正確替換引數;

方法一在sql語句中拼接字串的方式來得到如 '%value%'的值;  注:sql語句中 字串用單引號來作為字串的起始符, 而sql server中以 + 號 拼接字串.

所以'%value%'等同於 '%'+value'%', 

方法二則直接在賦值語句中加入模糊匹配符;

平時遇到的問題

1.學習 但是react就不一樣了,他就負責ui渲染,想要做好乙個專案,得會用redux來管理資料,還得會es6,webpack還得懂一點,要想提高效能,需要按需載入,immutable.js也得學一點,還有單元測試。2.右鍵單擊事件 oncontextmenu 元件上的事件 oncontextme...

linux安裝mysql常碰見的問題

目錄 error the server quit without updating pid file usr local mysql data localhost.localdomain.pid can t connect to local mysql through socket tmp mysq...

刷題中碰見的Golang語言問題

在golang語言中,乙個變數賦值 使用前,需要宣告變數的型別。例如 var a int a 10 fmt.printf d n a 使用另一種形式 也可以對變數進行隱式的宣告。例如 a 10 fmt.printf d a 對於乙個變數,可以賦值多次,但是只能宣告一次,不能重複。例如 a 10 a ...