在 C# 中使用 MySQL Connector/NET 進行參數化查詢,可有效防止 SQL 注入並簡化特殊字元處理。以下是插入資料的基本範例:
MySQLConnection con = null;
MySQLCommand cmd = null;
string nameStr = "Sample value passed \"";
con = new MySQLConnection("server=localhost;database=db_name;uid=user;pwd=passWord;pooling=false;");
con.Open();
cmd = new MySQLCommand("insert into MyTable values (null, ?ParName);", con);
cmd.Parameters.AddWithValue("?ParName", (string)nameStr.Replace("\"", "^"));
cmd.ExecuteNonQuery();
con.Close();
?)作為參數前綴,如 ?ParName。MySQLCommand 建構式中指定 SQL 語句與連線物件。Parameters.AddWithValue 方法為每個參數指定值,驅動程式會自動推斷資料型別。參數化查詢不僅提升安全性,還能讓資料庫快取查詢計畫,提高重複執行時的效能。對於包含引號、逗號等特殊字元的資料,無需手動轉義,由驅動程式妥善處理。
ExecuteNonQuery 後記得關閉連線,或使用 using 區塊自動管理資源。AddWithValue 中必須一致(包含問號)。