就是我把試題匯入資料庫的時候 因為題目是一個sql陳述句 然后有單引號 程式就報例外了,這是為什么?可以幫我解答一下嘛 謝謝!

uj5u.com熱心網友回復:
不貼全部代碼,怕我們抄?uj5u.com熱心網友回復:
他都說附近有語法錯誤了。。。。肯定sql陳述句有問題啊。比如單引號
uj5u.com熱心網友回復:
或許是中文括號,或許是全角單引號的問題。不要糾結你這個陳述句,用引數化查詢去插入記錄試試。
uj5u.com熱心網友回復:
因為在SQL陳述句中‘單引號’有特殊的語意。最好的解決方法就是”引數化“查詢。你可以參考下帖38#樓的例子和對單引號的解釋。
https://bbs.csdn.net/topics/393068375 (向資料庫職員表插入資料時候檢測職員編碼、姓名有無重復,并給出重復提醒?)
uj5u.com熱心網友回復:
sql陳述句的問題吧insert into 表名
values(資料)
uj5u.com熱心網友回復:
抱歉 沒有這個意思 因為insert 陳述句沒有錯所以就沒有貼 謝謝能回復
uj5u.com熱心網友回復:
不是 是把一個題目 匯入資料庫是報的錯 是因為題目是一個sql陳述句 謝謝能回復
uj5u.com熱心網友回復:
好的 謝謝 我這就去試試
uj5u.com熱心網友回復:
單引號在存入資料庫前要進行轉換,一般要轉成雙引號,''uj5u.com熱心網友回復:
string TiMuName = DanRow["TiMu"].ToString().Replace("'","\""); 我使用這個方法就可以了 但是題目中的單引號變成雙引號了 謝謝
uj5u.com熱心網友回復:
我的sql 陳述句沒有問題 已經解決但是變成雙引號了 謝謝大家了uj5u.com熱心網友回復:
嗯嗯 對 現在可以了 謝謝
uj5u.com熱心網友回復:
因為你沒有通過sql引數化保存, 而是通過組織sql陳述句,產生了sql注入問題uj5u.com熱心網友回復:
好的 謝謝 我這就去查一下
uj5u.com熱心網友回復:
引數化查詢要比 ”替換單引號“好。至少有兩個原因一是代碼的可讀性更好,更容易維護。
二是性能優勢,特別是多次用不同引數呼叫同一個sql的情況。
對一個sql陳述句,服務器可以快取查詢計劃并在重復查詢執行時重用它們。引數化查詢就可能到來這個好處。
而如果用字串拼接的方式,服務器對每個查詢要新作查詢計劃,有一定的性能影響。
uj5u.com熱心網友回復:
謝謝 我這就去學習一下引數化查詢 非常感謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/127395.html
標籤:C#
