SqlParameter防SQL注入的方法

1、 SqlParameter 构造函数

SqlParameter(String, SqlDbType, Int32,ParameterDirection, Byte, Byte, String, DataRowVersion, Boolean, Object,String, String, String),其参数分别代表该类使用参数名、参数的类型、参数的长度、方向、精度、小数位数、源列名称、DataRowVersion 值之一、用于源列映射的布尔值、SqlParameter 的值、此 XML 实例的架构集合所在的数据库的名称、此 XML 实例的架构集合所在的关系架构以及此参数的架构集合的名称。

2、  SqlParameter的应用

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);
3、 SqlParameter的基本原理是执行计划重用。即对注入后的SQL语句重新进行了编译,重新执行了语法解析。
参考:https://www.2cto.com/article/201402/281712.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值