A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 许庭洲 黑马帝   /  2012-11-13 06:10  /  1733 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

SQL注入是通过特殊的SQL语句非法获取数据库的内容。
为了保证系统不被黑客进行SQL注入攻击,在SqlCommand执行SQL语句时,可以对提交的数据先进行参数化处理,参数化处理主要是通过SqlCommand对象的Parameters属性的Add方法来完成。
参数化处理有两种方法:
第一种既是在“执行Insert操作”中提到的;
第二种
代码如下:

cmd.CommandText = "INSERT INTO b1(name, company, position, shijian)VALUES(@Name, @Company, @Position, @Datetime)";
cmd.Parameters.Add(new SqlParameter("Name", Name.Text));
cmd.Parameters.Add(new SqlParameter("Company", Company.Text));
cmd.Parameters.Add(new SqlParameter("Position", Position.Text));
cmd.Parameters.Add(new SqlParameter("Datetime", DateTime.Parse(Datetime.Text)));
cmd.ExecuteNonQuery();

说明:

在第一种代码中,显示的对各个参数的数据进行了定义,但是在上面这种代码中,并未对参数进行数据定义,所以需要在提供数据时对数据进行适时的转换,例如“shijian”在数据库中定义为DateTime类型,但是其在文本框中获得的为string类型,所以需要调用DateTimeParse方法对数据进行转换,如果数据库中的数据是int型,在赋值时也应进行相应的转换。

4 个回复

正序浏览
总结不错  让我受益匪浅
回复 使用道具 举报
学习了···
回复 使用道具 举报
很有用!
回复 使用道具 举报
学习了。{:soso_e130:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马