SqlParameter防SQL注入的方法
阿新 • • 發佈:2019-02-07
1、 SqlParameter 建構函式
參考:https://www.2cto.com/article/201402/281712.html
SqlParameter(String, SqlDbType, Int32,ParameterDirection, Byte, Byte, String, DataRowVersion, Boolean, Object,String, String, String),其引數分別代表該類使用引數名、引數的型別、引數的長度、方向、精度、小數位數、源列名稱、DataRowVersion 值之一、用於源列對映的布林值、SqlParameter 的值、此 XML 例項的架構集合所在的資料庫的名稱、此 XML 例項的架構集合所在的關係架構以及此引數的架構集合的名稱。
2、 SqlParameter的應用
3、 SqlParameter的基本原理是執行計劃重用。即對注入後的SQL語句重新進行了編譯,重新執行了語法解析。List<CommandInfo> cmd = new List<CommandInfo>(); for (int i = 0; i < dt.Rows.Count; i++) { StringBuilder strSqlConfig = new StringBuilder(); strSqlConfig.Append("insert into CMB_UpdateStatus_OnlineRecord(OnlineRecordTicketNo,SiemensEmployeeName)" + " values(@Tno,@Name) "); try { SqlParameter[] paraConfig ={ new SqlParameter("@Tno", SqlDbType.NVarChar, 10), new SqlParameter("@Name", SqlDbType.NVarChar,50)}; paraConfig[0].Value = dt.Rows[i]["機票號"].ToString(); paraConfig[1].Value = dt.Rows[i]["姓名"].ToString(); cmd.Add(new CommandInfo(strSqlConfig.ToString(), paraConfig)); } catch (Exception ex) { MessageBox.Show("excel寫入資料庫時發生錯誤:{0}", ex.Message); return; } } Hippo.ExecuteSqlTran(cmd);
參考:https://www.2cto.com/article/201402/281712.html