• 完整修改删除、数据库字符串攻击与防护、实体类与数据访问类


    完整修改和查询:
    中间变量运用。

    1、先查

    bool has = false;//初始定义一个bool变量为flase

    Console.Write("请输入要删除的用户名:");//用户输入
    string Uname = Console.ReadLine();//接收

    SqlConnection conn = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123");//连接数据库
    SqlCommand cmd = conn.CreateCommand();
    cmd.CommandText = "select *from Users where UserName='" + Uname + "'";
    conn.Open();
    SqlDataReader dr = cmd.ExecuteReader();
    if (dr.HasRows)//判断用户输入变量数据是否存在
    {
    has = true;
    }
    conn.Close();

    2、执行操作(删除或修改)

    if (has)//如果存在判断为true
    {
    Console.WriteLine("已经查到[" + Uname + "]用户信息,是否确定要删除吗?(Y/N):");//提示确认是否删除
    string u = Console.ReadLine();
    if (u.ToUpper() == "Y")//确定删除
    {
    cmd.CommandText = "delete from Users where UserName='" + Uname + "'";
    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();
    Console.WriteLine(Uname + "删除成功!");
    }
    }
    else//如果存在判断为flase
    {
    Console.WriteLine("未查到[" + Uname + "]用户信息,请确认用户名输入是否正确!");
    }

    Console.ReadLine();

    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);

    实体类,数据访问类:

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

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

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

    结构看起来会非常清晰

  • 相关阅读:
    Flink -- Java Generics Programming
    SpringBoot-annotation
    RDMA in CloudComputing
    ARM-IoT
    Netty
    TiDB, Distributed Database
    microkernel architecture
    Web网站的几个并发量级
    vtiger 下载地址
    php分布式缓存系统 Memcached 入门
  • 原文地址:https://www.cnblogs.com/yx1314520/p/5869456.html
Copyright © 2020-2023  润新知