完整修改和删除以及防字符串注入攻击
Posted 马MZJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了完整修改和删除以及防字符串注入攻击相关的知识,希望对你有一定的参考价值。
完整修改:
1 //1、接收用户输入进来的学生编号 2 Console.Write("请输入要修改的学生编号:"); 3 string Scode = Console.ReadLine(); 4 5 //2、判断有无此学生 6 SqlConnection conn = new SqlConnection("server=.;database=Data0425;user=sa;pwd=123;"); 7 SqlCommand cmd = conn.CreateCommand(); 8 cmd.CommandText = "select *from Student where code =‘" + Scode + "‘"; 9 conn.Open(); 10 SqlDataReader dr = cmd.ExecuteReader(); 11 //3、有此学生,那么继续修改操作,如果没有,提示无此学生信心,无法修改 12 if (dr.HasRows) 13 { 14 HasStu = true; 15 } 16 else 17 { 18 HasStu = false; 19 } 20 conn.Close(); 21 22 if (HasStu) 23 { 24 Console.WriteLine("已查询到此学生信息,请进行修改:"); 25 Console.Write("请输入更改后的学生姓名:"); 26 string Sname = Console.ReadLine(); 27 Console.Write("请输入更改后的学生性别:"); 28 bool Ssex = Convert.ToBoolean(Console.ReadLine()); 29 Console.Write("请输入更改后的学生生日:"); 30 DateTime Sbirthday = Convert.ToDateTime(Console.ReadLine()); 31 Console.Write("请输入更改后的学生成绩:"); 32 decimal Sscore = Convert.ToDecimal(Console.ReadLine()); 33 34 cmd.CommandText = "update student set name=‘" + Sname + "‘,sex=‘" + Ssex + "‘,birthday=‘" + Sbirthday + "‘,score=" + Sscore + " where code = ‘" + Scode + "‘"; 35 36 conn.Open(); 37 cmd.ExecuteNonQuery(); 38 Console.WriteLine("修改成功!"); 39 conn.Close(); 40 break; 41 } 42 else 43 { 44 Console.WriteLine("查无此学生,请重新输入!按任意键继续..."); 45 Console.ReadKey(); 46 Console.Clear(); 47 } 48 } 49 50 Console.ReadLine();
删除与修改的判断一样,只是吧修改语句改成删除语句。
防止字符串注入攻击:
1 cmd.CommandText = "update student set [email protected],[email protected],[email protected],[email protected] where code = @Scode";//sql语句中用@索引代替本该添加的数 据。 2 cmd.Parameters.Clear();//用之前清空一下集合 3 cmd.Parameters.Add("@Sname", Sname);//向集合内添加数据,前面带@的是索引号,后面是添加的数据,所有类型都可以添加。 4 cmd.Parameters.Add("@Ssex", Ssex); 5 cmd.Parameters.Add("@Sbirthday", Sbirthday); 6 cmd.Parameters.Add("@Sscore", Sscore); 7 cmd.Parameters.Add("@Scode", Scode);
以上是关于完整修改和删除以及防字符串注入攻击的主要内容,如果未能解决你的问题,请参考以下文章
怎么修改语句防sql注入攻击,我想把密码换成列表的形式,怎么操作?