2012-02-21 72 views
0

我正在使用WPF和Expression Blend爲使用SQLite作爲數據庫存儲其數據的應用程序編寫GUI。如何禁用在TextBox中輸入的雙引號字符?

我做了幾個TextBox,用戶可以輸入自己想添加或修改數據庫中的數據。但是,如果用戶輸入雙引號字符,則會生成異常,因爲我在查詢字符串時使用了雙引號字符。

所以我在尋找一種方法來防止用戶直接導入雙引號字符。可能嗎?

注:如果相關的SQLite在我使用C#實現是CSHARP - 源碼。

+0

如果您可以在寫入文本框之前訪問它的內容,請嘗試用另一個字符替換它,然後當您閱讀它時,可以放回雙引號。或者如果你不介意用空字符串替換引號s = s.Replace(「\」「,」「) – 2012-02-21 20:30:52

回答

3

您應該使用參數化查詢,而不是將SQL作爲字符串生成並執行該字符串。除了用戶可以輸入到文本框中的雙引號之外,還有很多其他內容會破壞您的查詢(只是先查看SQL注入),並使用參數解決所有情況。如果你試圖自己處理每一個案例,你會錯過一些東西,這只是一個問題,是否有人知道它。

+0

+1用於治療疾病,而不是症狀。 – cadrell0 2012-02-21 20:33:05

+0

謝謝你的回答,我有從來沒有使用過數據庫和SQL注入是一個未知的概念,我會閱讀更多關於參數化查詢並改變它。 – Armos 2012-02-21 23:47:31

相關問題