完整的增删改练习题

方字符串攻击方法:可以在修改或者删除操作时使用这一方法

数据库防字符串注入攻击:
cmd.CommandText = "update student set name=@Sname,sex=@Ssex,birthday=@Sbirthday,score=@Sscore where code = @Scode";
cmd.Parameters.Clear();
cmd.Parameters.Add("@Sname", Sname);
cmd.Parameters.Add("@Ssex", Ssex);
cmd.Parameters.Add("@Sbirthday", Sbirthday);
cmd.Parameters.Add("@Sscore", Sscore);
cmd.Parameters.Add("@Scode", Scode);

练习题

根据数据库中的表,完成以下操作

1、查询显示
2、请输入你想要做的操作(1:添加,2:删除,3:修改):
3、提示用户操作是否成功,刷新数据,回到2等待用户操作

数据库表格

create database netlx
go
use netlx
go

create table stu
(
   code nvarchar(50)primary key,
   name nvarchar(50),
   sex nvarchar(10),
   birth datetime,
   score decimal(10,2)
)

insert into stu values('s101','张三','','1995-3-2',99)
insert into stu values('s102','李四','','1995-4-2',89)
insert into stu values('s103','王五','','1994-3-8',95)
insert into stu values('s104','赵六','','1993-8-4',79)
insert into stu values('s105','小红','','1996-5-11',68)

VS连接操作:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
namespace ADO.Net_数据库增删改查练习题完整版
{
    class Program
    {
        static void Main(string[] args)
        {
            //先连接数据库
            SqlConnection conn = new SqlConnection("server=.;database=netlx;user=sa;pwd=123;");
            SqlCommand cmd = conn.CreateCommand();
            //1.查询数据库
            for (; ; )//最外部加个循环,在执行完增删改之后,刷新显示表
            {
                cmd.CommandText = "select * from stu";//表查询
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();//接收一下执行的查询语句所查询的信息
                if (dr.HasRows)//判断是否查到数据,查到就继续往下走
                {
                    while (dr.Read())//循环打印每一行的信息
                    {
                        string bir = Convert.ToDateTime(dr["birth"]).ToString("yyyy年MM月dd日");
                        string sor = Convert.ToDecimal(dr["score"]).ToString("#.##");
                        Console.WriteLine("学号:" + dr["code"] + "  姓名:" + dr["name"] + "  性别:" + dr["sex"] + "  生日:" + bir + "  成绩:" + sor + "");
                    }
                }
                conn.Close();//用完数据库关闭,以免一直占用,之后无法使用
                //2.根据用户输入执行增/改/删
                for (; ; )//外部加个无限循环,再输入有误时返回重新走一遍
                {
                    Console.Write("请输入操作指令序号(1.增加 2.修改 3.删除):");
                    string dh = Console.ReadLine();
                    //下面要根据学生学号执行增删改,先判断用户输入的学号有无此学生

                    if (dh == "1") //如果用户输入增加序号,走这一步,执行增加
                    {
                        for (; ; )
                        {
                            try
                            {
                                Console.Write("请输入要添加的学生学号:");
                                string zcode = Console.ReadLine();
                                Console.Write("请输入要添加的学生姓名:");
                                string zname = Console.ReadLine();
                                Console.Write("请输入要添加的学生性别:");
                                string zsex = Console.ReadLine();
                                Console.Write("请输入要添加的学生生日:");
                                DateTime zbir = Convert.ToDateTime(Console.ReadLine());
                                Console.Write("请输入要添加的学生成绩:");
                                decimal zscore = Convert.ToDecimal(Console.ReadLine());
                                cmd.CommandText = "insert into stu values('" + zcode + "','" + zname + "','" + zsex + "','" + zbir + "','" + zscore + "')";
                                conn.Open();
                                cmd.ExecuteNonQuery();//将输入的SQL语句在数据库里执行
                                conn.Close();
                                break;
                            }
                            catch
                            {
                                Console.WriteLine("输入有误,请重新输入!");
                            }
                        }
                        Console.Clear();//每执行完一个数据库操作方法,清空一下控制台界面,跳出循环,进入外循环返回顶部将表查询一遍
                        Console.WriteLine("添加成功!");
                        break;
                    }
                    else if (dh == "2") //输入修改,走这一步执行修改
                    {
                        bool cs = false;//先定义一个判断变量判断一下,数据库中有没有输入的学号
                        while (true)
                        {
                            Console.Write("请输入要修改的学生学号:");
                            string xcode = Console.ReadLine();
                            cmd.CommandText = "select * from stu where code= @xcode ";//防攻击
                            cmd.Parameters.Clear();//类似于哈希表集合,使用前先清空一下
                            cmd.Parameters.Add("@xcode",xcode);//将SQL语句中的查询条件按照格式添加在这个集合中,返给@xcode中
                            conn.Open();
                            SqlDataReader dr1 = cmd.ExecuteReader();
                            if (dr1.HasRows)//如果查询到数据,则返回一个ture到判断变量中
                            {
                                cs = true;
                            }
                            else//如果查询不到,false
                            {
                                cs = false;
                            }
                            conn.Close();
                            if (cs)//
                            {
                                try//判断程序有没有错误
                                {
                                    Console.WriteLine("已查询到该学生,可以进行修改");
                                    Console.Write("请输入修改后的学生姓名:");
                                    string zname = Console.ReadLine();
                                    Console.Write("请输入修改后的学生性别:");
                                    string zsex = Console.ReadLine();
                                    Console.Write("请输入修改后的学生生日:");
                                    DateTime zbir = Convert.ToDateTime(Console.ReadLine());
                                    Console.Write("请输入修改后的学生成绩:");
                                    decimal zscore = Convert.ToDecimal(Console.ReadLine());
                                    cmd.CommandText = "update stu set name= @zname ,sex= @zsex ,birth=@zbir ,score=@zscore where code= @xcode ";
                                    cmd.Parameters.Clear();
                                    cmd.Parameters.Add("@zname",zname);
                                    cmd.Parameters.Add("@zsex",zsex);
                                    cmd.Parameters.Add("@zbir",zbir);
                                    cmd.Parameters.Add("@zscore",zscore);
                                    cmd.Parameters.Add("@xcode",xcode);
                                    conn.Open();
                                    cmd.ExecuteNonQuery();
                                    conn.Close();
                                    break;
                                }
                                catch 
                                {
                                    Console.WriteLine("输入有误,请重新输入!");
                                }
                            }
                            else
                            {
                                Console.WriteLine("没有此学生!请重新输入!");
                            }
                        }
                        Console.Clear();
                        Console.WriteLine("修改成功!");
                        break;
                    }
                    else if (dh == "3")//输入删除走这一步,执行删除
                    {
                        bool cs = false;//先定义一个判断变量判断一下,数据库中有没有输入的学号
                        while (true)
                        {
                            Console.Write("请输入学生学号:");
                            string xcode = Console.ReadLine();
                            cmd.CommandText = "select * from stu where code=@xcode";
                            cmd.Parameters.Clear();
                            cmd.Parameters.Add("@xcode",xcode);
                            conn.Open();
                            SqlDataReader dr1 = cmd.ExecuteReader();
                            if (dr1.HasRows)
                            {
                                cs = true;
                            }
                            else
                            {
                                cs = false;
                            }
                            conn.Close();
                            if (cs)//判断查询到此信息,进行执行下一步操作
                            {
                                try
                                {
                                    Console.WriteLine("已查询到此学生,可以进行下一步操作");
                                    cmd.CommandText = "delete from stu where code=@xcode";
                                    cmd.Parameters.Clear();
                                    cmd.Parameters.Add("@xcode",xcode);
                                    conn.Open();
                                    cmd.ExecuteNonQuery();
                                    conn.Close();
                                    break;//执行完操作直接跳出
                                }
                                catch 
                                {
                                    Console.WriteLine("输入有误,请重新输入!");
                                }
                            }
                            else//如果没有,循环从新输入
                            {
                                Console.WriteLine("没有此学生!请重新输入!");
                            }
                        }
                        Console.Clear();
                        Console.WriteLine("删除成功!");
                        break;//完成整个操作直接跳出循环,进入外循环执行显示表查询
                    }
                    else //如果用户不是输入上面的序号,则提示错误,重新输入
                    {
                        Console.WriteLine("输入有误,请重新输入!");
                    }
                }
            }
            Console.ReadLine();
        }
    }
}
原文地址:https://www.cnblogs.com/zyg316/p/5609868.html