首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

数据库流入

2012-07-29 
数据库注入SqlParameter[] parr new SqlParameter[1]parr.SetValue(new SqlParameter(@orgname, strC

数据库注入
SqlParameter[] parr = new SqlParameter[1];
  parr.SetValue(new SqlParameter("@orgname", strCorpName), 0);
  string strSql = "select * from Organization where orgName = @orgname and isValid = 'True'";
  DataTable dt = SqlHelper.ExecuteDataset(XMLWriter.GetSingleSettingValue("DBConnectionString"), CommandType.Text, strSql, parr).Tables[0];
求大神解释整个意思,特别是数字参数,谢谢

[解决办法]
参数化嘛 就是这样 防注入
[解决办法]
// 创建一个Sql参数类对象
SqlParameter[] parr = new SqlParameter[1];
// 设置他的值,默认是字符串类型的
parr.SetValue(new SqlParameter("@orgname", strCorpName), 0);
// 这个是ADO。NET的读取Sql的方式,@开头就是参数,不是纯sql方式的
string strSql = "select * from Organization where orgName = @orgname and isValid = 'True'";
// 读取一个DT,参数:sql连接串,类型是Text,sql语句,对应的sql参数
DataTable dt = SqlHelper.ExecuteDataset(XMLWriter.GetSingleSettingValue("DBConnectionString"), CommandType.Text, strSql, parr).Tables[0];
 
这种方式的执行sql,ADO。NET会有很多容错检查,可以较为有效防止注入,但是不是100%

热点排行