2011-07-20 23 views
1

例如,在sql如何在VB.net中我們可以編碼字符串爲SQL

所有`應該被替換爲``正確?

那麼,有沒有一個由vb.net內置的功能,已經做了這樣的事情?

這樣我就不用編碼了。

順便說一句,我不直接訪問sql數據庫。基本上我創建一個文本文件,該文本文件包含原始的sql語句。大多數答案都是直接訪問sql數據。

回答

7

我不這麼認爲,因爲我覺得這裏像這將是相關的是,如果你不帶參數做內聯SQL命令的唯一案例。

這有SQL Injection風險,因此,你應該這樣創建命令:

Dim cmd As New SqlCommand("UPDATE [TableA] SET [email protected] WHERE [email protected]", Conn) 
cmd.Parameters.Add("@ColumnA", SqlDbType.NVarChar).Value = txtColumnA.Text 
cmd.Parameters.Add("@ID", SqlDbType.Int).Value = ID 
cmd.ExecuteNonQuery() 
+1

+1使用參數的行。令人驚訝的是,人們仍然在使用'String.Format'來創建他們的SQL查詢... –

+1

Grr ..我討厭它,當有人用<= 1分鐘打我的答案時。幹得好。 –

+2

謝謝,我在使用自定義SQL字符串替換函數的日子裏感到畏懼,我的已被黑客入死的網站也如此:( – Curt

0

如果您使用的是string,那麼您將在代碼中使用",因此您不需要轉義這些字符。

Dim mySql As String = "SELECT `MyColumn` FROM `Table`" 
7

不要嘗試這樣做!我知道你正在試圖避免SQL注入,所以你會因爲考慮安全問題而受到表揚。然而,滾動自己的衛生習慣是很容易出錯的。

在查詢中使用參數沿

cmd.CommandText = "select * from customer where id=?id"; 

cmd.Parameters.AddWithValue("?id",CustomerIDValue); 
+0

)如何在插入查詢時使用這些函數?當我在參數中添加單引號時,將參數存儲爲一個字符串,當我不添加它們時,程序崩潰,說該參數從不使用。 – DavidB

相關問題