[ADO.NET] 為何 / 如何 使用 SQLParameter 物件
當中
1.在插入資料的SQL陳述句,若能使用 Parameter 將會提高安全性,若使用者輸入了特別符號,也比較不會出問題;而寫ASP.NET必須更注意安全性的問題。
2.Parameter 可以 (1)檢查參數的型別 (2)檢查資料長度 (3)確保參數為非可執行的SQL命令 ,如下圖。
3.上一個範例的queryString 變數是
queryString = "insert into mytable (myregion,myname) values(N' " + region + "',N'" + name + "' )";
改為以下
string queryString = "insert into mytable (myregion,myname) values(@myregion,@myname)";
主要是使用"@參數名稱",來代替原本的變數。
5.Parameter 用法很簡單,如下範例:"@myregion", 為變數、textBox1.Text 為對應變數的數值
cmd.Parameters.AddWithValue("@myregion", textBox1.Text);
如何使用SQLParameter 物件
以下範例需引用 System.Data.SqlClient 命名空間,以下為部份範例
1.引用SqlConnection物件連接資料庫
using (SqlConnection cn = new SqlConnection(cs))
2.開啟資料庫
cn.Open();
3.引用SqlCommand物件
using (SqlCommand cmd = new SqlCommand(queryString, cn))
4.加入 SQLParameters(以下執行結果均為相同)
4.1 使用 SQLCommand.Parameters.Add 方法
cmd.Parameters.Add("@myregion", SqlDbType.NVarChar);
cmd.Parameters["@myregion"].Value = textBox1.Text;
4.2 使用 SQLCommand.Parameters.AddWithValue 方法
cmd.Parameters.AddWithValue("@myregion", textBox1.Text);
4.3 使用 SQLCommand.Parameters.Add 方法加入 SQLParameters 類別
cmd.Parameters.Add(new SqlParameter("@myregion", textBox1.Text));
5.執行SQL語法
cmd.ExecuteNonQuery();