完整修改删除,防止数据库字符串攻击
时间: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();
}
}
}
完整修改删除,防止数据库字符串攻击
标签: