我不爬山,但常常爬文,許多時候都會看到一些關於在.NET程式碼中使用SQL語法的問題,而有許多問題是關於SQL參數傳遞的。 這些問題常都會以這種形式呈現:
SQLStr="Select * From myTable Where myNo= '" & Textbox1.Text & "'"
我不爬山,但常常爬文,許多時候都會看到一些關於在.NET程式碼中使用SQL語法的問題,而有許多問題是關於SQL參數傳遞的。 這些問題常都會以這種形式呈現:
SQLStr="Select * From myTable Where myNo= '" & Textbox1.Text & "'"
這種形式的用法由來已久,尤其對於過去在沒有.NET時代就寫慣程式的人是非常熟悉的。
不過這樣的寫法對於初學者來說,恐怕是一種痛苦的煎熬。
小弟是滿佩服可以這樣寫的人,因為如果這個SQL敘述長一點,或是條件中的資料型別有很多種的時候,光是去找 [']或[#]有沒有配對正確的錯誤大概就可以把我搞瘋了。 所幸現在 .NET 2.0以後我們有了 <ParameterCollection 類別>,藉由這個類別我們可以輕鬆地加入參數,減少那些為了找尋[']或[#]配對所產生的錯誤的時間。
以開頭的例子來說,可以改成SQLStr="Select * From myTable Where myNo = @myNo "
然後將Parameter加入到SqlCommand(或OleDbCommand)的執行個體中,個人覺得這樣的作法不僅看起來清爽,而且除錯也容易一些。
<Example>
Dim SQLStr as string ="Select * From myTable Where myNo = @myNo "
Dim myConn as New Sqlconnection(連線字串)
Dim myCmd as New SqlCommand(SQLStr, myConn)
myCmd.Parameters.AddWithValue("@myNo", Trim(TextBox1.Text))