• C#_0913 完整修改删除、实体类和数据访问类


    完整修改和查询


    1、先查

      判断数据库是否有该内容,有该内容往下执行,没有则报错

    2、执行操作

    //完整修改 
            bool has = false;
                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();
                if (has)
                {
                    Console.WriteLine("已经查到[" + Uname + "]用户信息,请进行修改");
                    Console.Write("请输入修改后的密码:");
                    string Pwd = Console.ReadLine();
                    Console.Write("请输入修改后的昵称:");
                    string Nname = Console.ReadLine();
                    Console.Write("请输入修改后的性别:");
                    string Sex = Console.ReadLine();
                    Console.Write("请输入修改后的生日:");
                    string Birthday = Console.ReadLine();
                    Console.Write("请输入修改后的民族:");
                    string Nation = Console.ReadLine();
                    //@key  占位符  
                    cmd.CommandText = " update Users set PassWord=@pwd,NickName=@nname,Sex=@sex,Birthday=@bir,Nation=@nat where UserName=@uname;";
                    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);
                    conn.Open();
                    cmd.ExecuteNonQuery();
                    conn.Close();
                    Console.WriteLine("修改完毕!");
                }
                else
                {
                    Console.WriteLine("未查到[" + Uname + "]用户信息,请确认用户名输入是否正确!");
                }
                Console.ReadLine();
    
    
    //完整删除
            bool has = false;
                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();
                if (has)
                {
                    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
                {
                    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); 


    实体类,数据访问类:

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

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

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

    结构看起来会非常清晰

  • 相关阅读:
    图书馆业务制图
    单元测试(输入一个数组和它的大小,输出这个数组中最大子数组的和)
    build to win读后感
    小学四则运算
    微信公众平台具体方案和人员分工
    问卷调查结果剖析
    题目确定与需求分析
    课程介绍与团队简介
    网站LOGO以及网页样式
    C Sharp进行网站信息抽取与小型内部搜索引擎的讲解
  • 原文地址:https://www.cnblogs.com/longhaijun/p/5869070.html
Copyright © 2020-2023  润新知