一般常用的SQL查詢語法,若有需要Client端指定參數名稱,都是使用組字串的方式來達成,但若遇到使用者輸入的資料包含了特殊符號,尤其是單引號,SQL就會出錯,嚴重還會有資安的問題,最好的方法就是使用Parameter的方式來加入參數,這個方法最大的好處是,若資料包含單引號,系統也不會有問題,也可以正常將單引號寫入Table(類以系統自己將1個單引號取代為2個單引號後寫入Table)。 範例如下(使用MSSQL為範例): string sql = "select * from table where a = :a"; using (OleDbConnection Conn = new OleDbConnection(_dbConnString)) { Conn.Open(); using (OleDbCommand oraCmd = new OleDbCommand(sql, Conn)) { oraCmd.Parameters.Add("a", OleDbType.VarChar, 20).Value = "1234"; OleDbDataAdapter da = new OleDbDataAdapter(oraCmd); DataSet ds = new DataSet(); da.Fill(ds); DataTable dtResult = ds.Tables[0]; Console.WriteLine("data row = " + dtResult.Rows.Count.ToString()); Console.ReadKey(); } Conn.Close(); } 而SQL的Parameter符號依每個資料庫或連線方式而有所不同。 .Net For Oracle:使用冒號(:) + Parameter名稱 (若傳入空字串,要先轉為DBNull.Value) .Net For MSSQL:使用小老鼠(@) + Parameter名稱 ODBC:使用問號(?),因為不需指定Parameter名稱...