zoukankan      html  css  js  c++  java
  • ADO操作 练习 自动生成code

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data.SqlClient;
    using System.Collections;
    
    namespace ado操作练习
    {
        class Program
        {
            static void Main(string[] args)
            {
                //建立数据库连接类
                //建立数据库查询类
                //查询
                //添加
                //--1、防字符串注入攻击
                //--2、添加的数据增加相应的限制
                //--3、学号自动生成
                //修改
                //--1、防字符串注入攻击
                //--2、用户修改后的数据增加相应的限制
                //删除
                SqlConnection conn = new SqlConnection("server=.;database=zuoye;user=sa;pwd=123");
                SqlCommand cmd = conn.CreateCommand();
                while (true)
                {
                    #region 查询
                    //查询
                    cmd.CommandText = "select *from AdoStudent";
                    Console.WriteLine("学号     姓名     性别      生日           成绩");
                    conn.Open();
                    SqlDataReader dr = cmd.ExecuteReader();
                    if (dr.HasRows)
                    {
                        while (dr.Read())
                        {
                            Console.WriteLine(dr["code"].ToString() + dr["name"].ToString() + (Convert.ToBoolean(dr["sex"]) ? "" : "") + Convert.ToDateTime(dr["birthday"]).ToString("0.##") + Convert.ToInt32(dr["score"]));
                        }
                    }
                    conn.Close();
                    #endregion
    
                    //询问接下来的操作
                    Console.Write("将要进行的操作(1:添加,2:修改,3:删除):");
                    int caozuo = 0;
                    caozuo = Convert.ToInt32(Console.ReadLine());
    
                    //操作开始
    
                    #region  添加
    
                    //添加
                    if (caozuo == 1)
                    {
                        //自动生成学号
                        //集合——查询——截取——生成
                        ArrayList codes = new ArrayList();
                        cmd.CommandText = "select *from AdoStudent";
                        conn.Open();
                        dr = cmd.ExecuteReader();
                        if (dr.HasRows)
                        {
                            while (dr.Read())
                            {
                                int shu = Convert.ToInt32(dr["code"].ToString().Substring(1));
                                codes.Add(shu);
                            }
                        }
                        conn.Close();
                        codes.Sort();//将codes集合里的数字按从大到小的顺序排列
                        string newcode = "s" + Convert.ToInt32(codes[(codes.Count - 1)]);
                        //输入要添加的学生的信息
                        Console.WriteLine("新添加学生的学号:" + newcode);
                        //学生姓名的限制:不能为空,如果输入错误就要重新输入。
                        string name = "";
                        while (true)
                        {
                            Console.Write("请输入学生的姓名:");
                            name = Console.ReadLine();
                            if (name != "")
                            {
                                break;
                            }
                            else
                            {
                                Console.WriteLine("姓名不能为空!");
                            }
                        }
                        //性别限制:只能输入男或者女,如果输入错误就重新输入。
                        string sex = "";
                        bool panduan = false;
                        while (true)
                        {
                            Console.Write("请输入学生性别:");
                            sex = Console.ReadLine();
                            if (sex == "")
                            {
                                panduan = true;
                                break;
                            }
                            else if (sex == "")
                            {
                                panduan = false;
                                break;
                            }
                            else
                            {
                                Console.WriteLine("性别输入有误!");
                            }
                        }
                        //生日限制:try一下,看输入的可不可以转换成datetime类型
                        DateTime birthday = DateTime.Now;
                        while (true)
                        {
                            Console.Write("请输入学生生日:");
                            try
                            {
                                birthday = Convert.ToDateTime(Console.ReadLine());
                                break;
                            }
                            catch
                            {
                                Console.WriteLine("生日输入有误!");
                            }
                        }
                        //成绩限制:0<score<=100
                        decimal score = 0m;
                        while (true)
                        {
                            Console.Write("请输入学生成绩:");
                            score = Convert.ToDecimal(Console.ReadLine());
                            if (score >= 0 && score <= 100)
                            {
                                break;
                            }
                            else
                            {
                                Console.WriteLine("成绩输入有误!");
                            }
                        }
                        cmd.CommandText = "insert into AdoStudent values(@newcode,@name,@sex,@birthday,@score)";
                        cmd.Parameters.Clear();
                        cmd.Parameters.Add("@newcode", newcode);
                        cmd.Parameters.Add("@name", name);
                        cmd.Parameters.Add("@sex", sex);
                        cmd.Parameters.Add("@birthday", birthday);
                        cmd.Parameters.Add("@score", score);
    
                        conn.Open();
                        cmd.ExecuteNonQuery();
                        conn.Close();
                        Console.Clear();
                        Console.WriteLine("添加成功!");
                        //continue;
                    }
    
                    #endregion 修改
                    //修改
                    else if (caozuo == 2)
                    {
                        while (true)
                        {
                            //首先要确定这个学号对应的学生信息存不存在
                            bool has = false; //判断是否有这个学生
                            Console.Write("请输入要修改的学生编号:");
                            string xiugai = Console.ReadLine();
                            cmd.CommandText = "select *from AdoStudent where code ='" + xiugai + "'";
                            conn.Open();
                            dr = cmd.ExecuteReader();
                            if (dr.HasRows)
                            {
                                //此处只需要查询一遍有无这个学号即可
                                has = true;
                            }
                            conn.Close();
                            if (has)
                            {
                                Console.WriteLine("已查询到此学生信息,请继续修改操作");
                                string name = "";
                                while (true)
                                {
                                    Console.Write("请输入学生的姓名:");
                                    name = Console.ReadLine();
                                    if (name != "")
                                    {
                                        break;
                                    }
                                    else
                                    {
                                        Console.WriteLine("姓名不能为空!");
                                    }
                                }
                                //性别限制:只能输入男或者女,如果输入错误就重新输入。
                                string sex = "";
                                bool panduan = false;
                                while (true)
                                {
                                    Console.Write("请输入学生性别:");
                                    sex = Console.ReadLine();
                                    if (sex == "")
                                    {
                                        panduan = true;
                                        break;
                                    }
                                    else if (sex == "")
                                    {
                                        panduan = false;
                                        break;
                                    }
                                    else
                                    {
                                        Console.WriteLine("性别输入有误!");
                                    }
                                }
                                //生日限制:try一下,看输入的可不可以转换成datetime类型
                                DateTime birthday = DateTime.Now;
                                while (true)
                                {
                                    Console.Write("请输入学生生日:");
                                    try
                                    {
                                        birthday = Convert.ToDateTime(Console.ReadLine());
                                        break;
                                    }
                                    catch
                                    {
                                        Console.WriteLine("生日输入有误!");
                                    }
                                }
                                //成绩限制:0<score<=100
                                decimal score = 0m;
                                while (true)
                                {
                                    Console.Write("请输入学生成绩:");
                                    score = Convert.ToDecimal(Console.ReadLine());
                                    if (score >= 0 && score <= 100)
                                    {
                                        break;
                                    }
                                    else
                                    {
                                        Console.WriteLine("成绩输入有误!");
                                    }
                                }
                                //修改数据库里的数据
                                cmd.CommandText = "update AdoStudent set name=@name,sex=@sex,birthday=@birthday,score=@score where code='" + xiugai + "'";
                                //防止字符串注入攻击
                                cmd.Parameters.Clear();
                                cmd.Parameters.Add("@name", name);
                                cmd.Parameters.Add("@sex", sex);
                                cmd.Parameters.Add("@birthday", birthday);
                                cmd.Parameters.Add("@score", score);
                                conn.Open();
                                cmd.ExecuteNonQuery();
                                conn.Close();
                                Console.Clear();
                                Console.WriteLine("修改成功!");
                                //break;//跳出最里面的循环
                            }
                            else
                            {
                                Console.WriteLine("查无此学生信息!");
                            }
                        }
                        //continue;
                    }
    
                    #region 删除
                    //删除
                    else if (caozuo == 3)
                    {
                        string isok = "";
                        string shanchu = "";
                        while (true)
                        {
                            //1、让用户输入要删除的学生编号
                            bool has = false; //判断是否有这个学生
                            Console.Write("请输入要删除的学生编号:");
                            shanchu = Console.ReadLine();
                            cmd.CommandText = "select *from AdoStudent where Code ='" + shanchu + "'";
                            conn.Open();
                            dr = cmd.ExecuteReader();
                            if (dr.HasRows)
                            {
                                has = true;
                            }
                            conn.Close();
                            //判断有无此学生信息
                            if (has)//有,那么询问用户是否确定删除
                            {
                                Console.Write("已查到此学生信息,是否要删除?输入Y执行删除:");
                                isok = Console.ReadLine();
                                break;
                            }
                            else
                            {
                                Console.WriteLine("无此学生信息,输入有误!");
                            }
                        }
                        //3、执行删除
                        if (isok.ToUpper() == "Y")
                        {
                            cmd.CommandText = "delete from AdoStudent where Code ='" + shanchu + "'";
                            conn.Open();
                            cmd.ExecuteNonQuery();
                            conn.Close();
                            Console.Clear();
                            Console.WriteLine("删除成功!");
                            //continue;
                        }
                    }
                    #endregion
                    else
                    {
                        Console.WriteLine("输入的操作指令有误!");
                    }
                    //操作结束
                }
            }
        }
    }

    防字符串注入攻击:

    使用Parameters集合和占位符(例如:@name

    例如:

    cmd.CommandText = "update AdoStudent set name=@name,sex=@sex where code='" + xiugai + "'";
    cmd.Parameters.Clear();
    cmd.Parameters.Add("@name", name);
    cmd.Parameters.Add("@sex", sex);
    cmd.Parameters.Add("@birthday", birthday);
    cmd.Parameters.Add("@score", score);

  • 相关阅读:
    laravel phpstorm IDE 代码提示
    vue的样式绑定
    asp.net mvc视图中使用entitySet类型数据时提示出错
    Linq to SQL 中将数字转换为字符串
    jquery submit()不能提交表单的解决方法
    命名空间“System.Web”中不存在类型或命名空间名称“Optimization”(是否缺少程序集引用?)
    没有为扩展名“.cshtml”注册的生成提供程序
    WP REST API: 设置和使用OAuth 1.0a Authentication(原文)
    解决"要执行请求的操作,WordPress需要访问您网页服务器的权限"
    Mysql添加用户错误:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value解决方法
  • 原文地址:https://www.cnblogs.com/123lucy/p/5653909.html
Copyright © 2011-2022 走看看