当前位置:Gxlcms > 数据库问题 > 完整修改删除,防止数据库字符串攻击

完整修改删除,防止数据库字符串攻击

时间:2021-07-01 10:21:17 帮助过:3人阅读

System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient;//引用这个空间命名 namespace 作业 { class Program { static void Main(string[] args) { while (true) { //显示信息 Console.Clear();//清屏 #region Console.WriteLine("用户名" + "\t" + "密码" + "\t" + "昵称" + "\t" + "性别" + "\t" + "生日" + " " + "民族"); //实例化,创建类,连接数据库 SqlConnection conn = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123;"); //设置数据库中的表的操作 SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "select * from Users;"; //执行操作 conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { Console.WriteLine(dr["username"] + "\t" + dr["password"] + "\t" + dr["nickname"] + "\t" + (((bool)dr["sex"]) ? "" : "") + "\t" + Convert.ToDateTime(dr["brithday"]).ToString("yyy年MM月dd日") + "\t" + dr["nation"]); } conn.Close(); #endregion Console.WriteLine("-------------------------------------------------------"); Console.Write("请输入您想执行的操作(1.添加 2.修改 3.删除):"); string n = Console.ReadLine(); //添加信息 if (n == "1") { Console.Write("请输入您要添加的用户名:"); string Uname = Console.ReadLine(); Console.Write("请输入您要添加的密码:"); string Pwd = Console.ReadLine(); Console.Write("请输入您要添加的昵称:"); string Nname = Console.ReadLine(); Console.Write("请输入您要添加的性别:"); bool Sex = Convert.ToBoolean(Console.ReadLine()); Console.Write("请输入您要添加的生日:"); DateTime Birthday = Convert.ToDateTime(Console.ReadLine()); Console.Write("请输入您要添加的民族:"); string Nation = Console.ReadLine(); //连接数据库 SqlConnection coon1 = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123"); //设置数据库中的表格的操作 SqlCommand cmd1 = coon1.CreateCommand(); cmd1.CommandText = "insert into Users values(‘" + Uname + "‘,‘" + Pwd + "‘,‘" + Nname + "‘,‘" + (Sex ? "1" : "0") + "‘,‘" + Birthday + "‘,‘" + Nation + "‘)"; //执行操作 coon1.Open(); cmd1.ExecuteNonQuery(); coon1.Close(); //提示是否添加成功 Console.WriteLine("您已添加成功,请单击刷新信息表!"); Console.ReadLine(); } //修改信息 else if (n == "2") { bool has = false;//定义一个bool类型的变量 Console.Write("请输入要修改的用户名:"); string Uname = Console.ReadLine(); //1、连接数据库 SqlConnection conn2 = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123;");//编写连接字符串 //先查看信息表中是否有想要修改的那个用户名,有则修改,没有则重新输入 SqlCommand cmd2 = conn2.CreateCommand(); cmd2.CommandText = "select * from Users where username=‘" + Uname + "‘;"; conn2.Open(); SqlDataReader dr2 = cmd2.ExecuteReader(); if (dr2.HasRows)//如果查出有该用户 { has = true; } conn2.Close(); if (has)//查到要修改的用户 { Console.WriteLine("已查到" + Uname + "这个用户的信息,请进行修改:"); Console.Write("请输入修改后的密码:"); string Pwd = Console.ReadLine(); Console.Write("请输入修改后的性别:"); string Sex = Console.ReadLine(); Console.Write("请输入修改后的生日:"); string Birthday = Console.ReadLine(); //2、设置修改内容的操作,防止数据攻击 //cmd2.CommandText = "update Users set password=‘"+Pwd+"‘,sex=‘"+((Sex=="男")?"1":"0")+"‘,brithday=‘"+Birthday+"‘ where username=‘"+Uname+"‘"; //用 @key 占位符 cmd2.CommandText = "update Users set password=@pwd,sex=@sex,brithday=@bir where username=@uname;"; cmd2.Parameters.Clear();//这步必须有,一定要先清空 cmd2.Parameters.Add("@pwd",Pwd); cmd2.Parameters.Add("@sex",(Sex=="")?"1":"0"); cmd2.Parameters.Add("@bir",Birthday); cmd2.Parameters.Add("@uname",Uname); //3、执行操作 conn2.Open(); cmd2.ExecuteNonQuery(); conn2.Close(); //4、提示一下是否修改完成 Console.WriteLine("您已修改完成,请单击刷新信息表"); Console.ReadLine(); } else { Console.WriteLine("未查到该用户,请核实后重新输入!"); } } //删除信息 else if (n == "3") { Console.Write("请输入要删除的用户名:"); string Uname = Console.ReadLine(); //1、连接数据库 SqlConnection conn3 = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123"); //查询是否有该用户 bool has1 = false;//定义一个bool类型的变量 SqlCommand cmd3 = conn3.CreateCommand(); cmd3.CommandText = "select * from Users where username=‘" + Uname + "‘; "; conn3.Open(); SqlDataReader dr3 = cmd3.ExecuteReader(); if (dr3.HasRows)//如果查出有该用户 { has1 = true; } conn3.Close(); if (has1) { Console.WriteLine("已查到" + Uname + "这个用户的信息,请进行删除:"); //2、设置要对数据库中的表进行的操作内容 cmd3.CommandText = "delete from Users where username=@uname"; cmd3.Parameters.Clear(); cmd3.Parameters.Add("@uname", Uname); //3、执行操作 conn3.Open();//打开通道 cmd3.ExecuteNonQuery();//执行操作 conn3.Close();//关闭通道,通道只有一个,每次用完都要关闭,要不然下次用连接不上 //提示一下,看是否删除成功,成功则显示提示语句,不成功则不显示,并报错 Console.WriteLine("您已删除成功,请单击刷新信息表!"); Console.ReadLine(); } else { Console.WriteLine("未查到该用户,请核实后重新输入!"); } } else { Console.WriteLine("您的输入有误,请重新输入!"); Console.ReadLine(); } } Console.ReadLine(); } } }

技术分享技术分享

 

完整修改删除,防止数据库字符串攻击

标签:

人气教程排行