作者:Victoria625_176 | 来源:互联网 | 2023-07-11 11:19
--SQl中
--建立ren的数据库,插入一条信息
create database ren
go
use ren
go
create table xinxi
(
code nvarchar(20) primary key,--编号
name nvarchar(50)--名字
)
insert into xinxi values('1001','zhangsan')
for (; ; ){bool b = false;//利用中间变量Console.Write("请输入要修改的编号:");string no = Console.ReadLine();//查询展示SqlConnection zhancnn = new SqlConnection("server=.;database=ren;user=sa;pwd=123");//连接//操作的语句SqlCommand zhancmd = zhancnn.CreateCommand();zhancmd.CommandText = "select * from xinxi where code='" + no + "'";//执行操作的语句
zhancnn.Open();SqlDataReader ss = zhancmd.ExecuteReader();if (ss.HasRows)//数据库中是否有要修改的数据
{b = true;}zhancnn.Close();if (b == true)//如果有要修改的数据
{Console.Write("找到【" + no + "】的信息,请输入要修改的名字:");string mingzi = Console.ReadLine();zhancmd.CommandText = "update xinxi set name='"+mingzi+"' where code='"+no+"'";zhancnn.Open();zhancmd.ExecuteNonQuery();zhancnn.Close();Console.WriteLine("修改完毕!");break;}else//如果没有要修改的数据
{Console.WriteLine("数据库中没有该条信息,请输入正确的编码!!");}}Console.ReadLine();
执行时,,注意,我就要输入了:
然后查询数据库,查询全部,就成为了
为了防止这种注入文字攻击,我们就需要:
//C#中 for (; ; ){bool b = false;//利用中间变量Console.Write("请输入要修改的编号:");string no = Console.ReadLine();//查询展示SqlConnection zhancnn = new SqlConnection("server=.;database=ren;user=sa;pwd=123");//连接//操作的语句SqlCommand zhancmd = zhancnn.CreateCommand();zhancmd.CommandText = "select * from xinxi where code='" + no + "'";//执行操作的语句
zhancnn.Open();SqlDataReader ss = zhancmd.ExecuteReader();if (ss.HasRows)//数据库中是否有要修改的数据
{b = true;}zhancnn.Close();if (b == true)//如果有要修改的数据
{Console.Write("找到【" + no + "】的信息,请输入要修改的名字:");string mingzi = Console.ReadLine();zhancmd.CommandText = "update xinxi set name=@mingzi where code=@no;";//@变量名:占位符。注意:name=@mingzi没有引号
zhancmd.Parameters.Clear();//必须先清空里面所有内容zhancmd.Parameters.Add("@mingzi",mingzi);//类似哈希表。第一个值随便取,必须跟上边一致;第二个是变量zhancmd.Parameters.Add("@no",no);zhancnn.Open();zhancmd.ExecuteNonQuery();zhancnn.Close();Console.WriteLine("修改完毕!");break;}else//如果没有要修改的数据
{Console.WriteLine("数据库中没有该条信息,请输入正确的编码!!");}}Console.ReadLine();
//如果在执行窗口输入上跟上次一样的内容,那么输出的结果就是把”那句注入的代码“和”要改的name“ 作为一整个字符串进行处理。