首页 > 代码库 > 实体类,数据访问类.字符串攻击.防攻击
实体类,数据访问类.字符串攻击.防攻击
程序分三层:界面层、业务逻辑层、数据访问层
这里主要操作的是数据访问层,数据访问层又分为:
1.实体类
2.数据访问类
存放位置:APP_Code文件中
一.实体类
最简单的封装
把数据库的表名变成类的类名
把数据库的每一个列,变为实体类中的成员变量和属性
列名与属性名一致
有几行就有几个实体类
这是一个简单的实体类:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication2.APP_Code { public class Users { private int _Ids; public int Ids { get { return _Ids; } set { _Ids = value; } } private string _Username; public string Username { get { return _Username; } set { _Username = value; } } private string _Password; public string Password { get { return _Password; } set { _Password = value; } } private string _Nickname; public string Nickname { get { return _Nickname; } set { _Nickname = value; } } private bool _Sex; public bool Sex { get { return _Sex; } set { _Sex = value; } } private DateTime _Birthday; public DateTime Birthday { get { return _Birthday; } set { _Birthday = value; } } private String _Nation; public String Nation { get { return _Nation; } set { _Nation = value; } } } }
二.数据访问类
将某个表的数据库操作写成一个一个方法,放入到此类中
供外部调用
这是一个数据访问类:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; namespace ConsoleApplication2.APP_Code { public class UsersData { // 数据库连接 SqlConnection conn = null; SqlCommand cmd = null; public UsersData() { conn = new SqlConnection("server=.;database=ODA;user=sa;pwd=123;"); cmd = conn.CreateCommand(); } //数据库数据查询 public List<Users> Celect() { List<Users> li = new List<Users>(); cmd.CommandText = "select*from Users"; conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { Users n = new Users(); n.Ids = Convert.ToInt32(dr["Ids"]); n.Username = dr["Username"].ToString(); n.Password = dr["Password"].ToString(); n.Nickname = dr["Nickname"].ToString(); n.Sex = Convert.ToBoolean(dr["Sex"]); n.Birthday = Convert.ToDateTime(dr["Birthday"]); n.Nation = dr["Nation"].ToString(); li.Add(n); } conn.Close(); return li; }
三.字符串攻击,防攻击
字符串攻击:
主要利用获取需用户输入的字符串时,通过输入精心编制的含有某种指令的字符串,从而对数据库进行攻击性操作
防御攻击:
//数据库数据添加 public int Add(Users mm) { conn.Open(); cmd.CommandText = "insert into Users values(@a,@b,@c,@d,@e,@f);"; cmd.Parameters.AddWithValue("@a", mm.Username); cmd.Parameters.AddWithValue("@b", mm.Password); cmd.Parameters.AddWithValue("@c", mm.Nickname); cmd.Parameters.AddWithValue("@d", mm.Sex); cmd.Parameters.AddWithValue("@e", mm.Birthday); cmd.Parameters.AddWithValue("@f", mm.Nation); int a = cmd.ExecuteNonQuery(); conn.Close(); return a; }
通过使用此占位符来进行防字符串攻击,这样,占位符所代表的的仅仅是字符串,不带有代码含义。
实体类,数据访问类.字符串攻击.防攻击
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。