• 完整的增删改练习题


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

    数据库防字符串注入攻击:
    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();
            }
        }
    }
  • 相关阅读:
    linux安装mongo-c-driver
    DPDK在虚拟机上运行时,报错: Ethdev port_id=0 requested Rx offloads 0xe doesn't match Rx offloads capabilities 0x82a1d in rte_eth_dev_configure()
    用python写xml文件
    openvas在centos中扫描单项的python实现
    ARP协议的报文格式
    python装饰器使用
    openvas漏洞扫描:使用openvas时扫描漏洞时,报告中显示的数据与数据库数据不同
    单链表实现一元多项式乘法与加法运算(C语言)
    Java学习笔记DayN Java高级特性概况
    Java学习笔记Day5 集合
  • 原文地址:https://www.cnblogs.com/zyg316/p/5609868.html
Copyright © 2020-2023  润新知