• 实体类、数据访问类及防止SQL数据库字符串注入攻击


    一、实体类

    封装

    封装一个类,类名与数据库表名一致
    成员变量名与列名一致,多一个下划线
    成员变量封装完的属性,就会与数据表中的列名一致

    例:

    namespace 实体类和数据访问类.App_Code
    {
    public class Users
    {
    private string _UserName;

    /// <summary>
    /// 用户名
    /// </summary>
    public string UserName
    {
    get { return _UserName; }
    set { _UserName = value; }
    }

    每一行数据都可以存成一个对象,操作这个对象,就相当于对某一行数据进行整体操作

    二、数据访问类

    就是将对数据库的一些操作,单独写到一个类中,封成一些方法,等待调用

    结构看起来会非常清晰

    例:

    namespace 实体类和数据访问类.App_Code
    {
    public class UsersData
    {
    SqlConnection conn = null;
    SqlCommand cmd = null;

    public UsersData()
    {
    conn = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123");
    cmd = conn.CreateCommand();
    }

    /// <summary>
    /// Users表添加方法
    /// </summary>
    /// <param name="u">要添加到数据库的Users对象</param>
    public void Insert(Users u)
    {
    cmd.CommandText = "insert into Users values(@a)";
    cmd.Parameters.Clear();
    cmd.Parameters.Add("@a", u.UserName);

    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();
    }

    三、防止SQL数据库字符串注入攻击

    SQL数据库字符串注入攻击:
    需要使用cmd.Parameters这个集合
    占位符: @key 代表这个位置用这个占位符占住了

    Parameters这个集合中将此占位符所代表的数据补全

    cmd.Parameters.Clear(); --添加占位符数据之前,要清空此集合
    cmd.Parameters.Add("@pwd", Pwd); --占位符内容填充
    cmd.Parameters.Add("@nname",Nname);
    cmd.Parameters.Add("@sex", (Sex=="男")?"1":"0");
    cmd.Parameters.Add("@bir", Birthday);
    cmd.Parameters.Add("@nat", Nation);
    cmd.Parameters.Add("@uname", Uname);

  • 相关阅读:
    方法和参数
    【转】priority_queue优先队列
    【转】主席树学习
    【转】树链剖分
    【转】线段树完全版~by NotOnlySuccess
    【转】树状数组
    【转】最大流EK算法
    【转】POJ题目分类推荐 (很好很有层次感)
    【转】原根
    【转】Polya定理
  • 原文地址:https://www.cnblogs.com/xtq0313/p/5869031.html
Copyright © 2020-2023  润新知