首页 > 代码库 > 完整增删改查,数据库字符串攻击
完整增删改查,数据库字符串攻击
复习一下,基础的增删改查,
增一条信息,删一条信息。改一条信息
询问语句
Console.WriteLine("请输入你的学号");
string xuehao = Console.ReadLine();
Console.WriteLine("请输入你的姓名");
string name = Console.ReadLine();
Console.WriteLine("请输入你的班级");
string banji= Console.ReadLine();
Console.WriteLine("请输入你的成绩");
decimal chengji = decimal .Parse(Console.ReadLine());
先连接数据库
SqlConnection conn = new SqlConnection("server=(local);database=kulianjie;user=sa;pwd=123");
创建数据库操作
SqlCommand cmd = conn.CreateCommand();
添加一条数据
cmd.CommandText = "insert into student values(‘"+xuehao+"‘,‘"+name+"‘,‘"+banji+"‘,‘"+chengji+"‘)";
修改一条数据
cmd.CommandText = "upder student set=name=‘" + name + "‘,banji=‘" + banji + "‘,chengji=‘" + chengji + "‘where xuehao=‘" + xuehao + "‘";
删除一条数据
cmd.CommandText = "delect from student where xuehao=‘" + xuehao + "‘";
执行数据库
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
查所有信息
SqlConnection conn = new SqlConnection("server=(local);database=kulianjie;user=sa;pwd=123");
SqlCommand cmd = conn.CreateCommand();
查询所有信息
cmd.CommandText = "select *from student";
conn.Open();
执行数据库
SqlDataReader dr = cmd.ExecuteReader();
一行一行读取
while (dr.Read())
{
Console.Write(dr[0], dr[1] , dr["banji" ], dr["chengji"]);
}
conn.Close();
完整修改和查询:
中间变量运用。
1、先查
2、执行操作
----------------------------------------------------
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);
-----------------------------------------------------------------
实体类,数据访问类:
实体类:封装
封装一个类,类名与数据库表名一致
成员变量名与列名一致,多一个下划线
成员变量封装完的属性,就会与数据表中的列名一致
每一行数据都可以存成一个对象,操作这个对象,就相当于对某一行数据进行整体操作
数据访问类:
就是将对数据库的一些操作,单独写到一个类中,封成一些方法,等待调用
结构看起来会非常清晰
完整增删改查,数据库字符串攻击