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 ...