完整修改和删除:
1、先查询是否有该用户名
2、然后执行修改和删除操作
例:
bool has = false;//定义has为false
Console.WriteLine("请输入你要删除的用户名:");
string nameshan = Console.ReadLine();
comd.CommandText = "select *from xinxi where name='" + nameshan + "'";//先查询是否有该用户名
conn.Open();//开启数据库通道
SqlDataReader dr1 = comd.ExecuteReader();//执行查询操作
if (dr1.HasRows)
{
has = true;
}
conn.Close();//关闭数据库通道
if (has)//确定有该用户名,执行删除操作
{
Console.WriteLine("您确定要删除用户名[" + nameshan + "]吗?请输入Y/N进行选择!");
string shan = Console.ReadLine();
if (shan.ToUpper() == "Y")//如果确定要删除用户名,执行删除操作
{
comd.CommandText = "delete from xinxi where name=@nameshan";
comd.Parameters.Add("@nameshan", nameshan);
conn.Open();
comd.ExecuteNonQuery();
conn.Close();
Console.WriteLine("删除成功!请按回车键继续执行其他操作!");
Console.ReadLine();
}
}
else//无用户名提示
{
Console.WriteLine("账号输入有误!请重新确认!");
}
SQL数据库字符串注入攻击
需要使用cmd.Parameters这个集合
占位符: 使用 @ 关键字
Parameters 这个集合中将此占位符所代表的数据补全
comd.Parameters.Clear(); --添加占位符数据之前,要清空此集合
comd.Parameters.Add("@pwd", Pwd); --占位符内容填充,需要一个一个填充
实体类和数据访问类:
实体类:封装
①封装一个类,类名与数据库表名尽量保持一致
②成员变量名与列名一致,多一个下划线(约定)
③成员变量封装完的属性,就会与数据表中的列名一致
数据访问类:
就是将对数据库的一些操作,单独写到一个类中,封成一些方法,等待调用
*三层开发:
界面层 - UI层
业务逻辑层 - C#代码部分
数据访问层 - 实体类和数据访问类