zoukankan      html  css  js  c++  java
  • 完整修改删除,占位符防治字符串攻击

    完整修改删除相对于修改删除就是在修改删除之前先进性判断是否有要进行操作的对象,如果有再进行修改或者删除。也就是在修改删除之前先进行查询。

    以修改为例

    static void Main(string[] args)

            {

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

            }

  • 相关阅读:
    django系列6--Ajax03 ajax参数
    django系列6--Ajax06 使用插件,Sweet-Alert插件
    django系列6--Ajax05 请求头ContentType, 使用Ajax上传文件
    django系列6--Ajax04 请求设置(设置csrf_token)
    django系列6--Ajax01 特点, 基本格式, 向前端发送数据
    django系列4.2--自定义标签, 自定义过滤器, inclusion_tag, 引入静态文件(css,js等)
    面向对象之封装之如何隐藏属性, 封装的底层原理
    面向对象之------多态与多态性
    在子派生的新方法中重用父类功能的两种方式
    菱形继承
  • 原文地址:https://www.cnblogs.com/lanrenqilanming/p/5880075.html
Copyright © 2011-2022 走看看