zoukankan      html  css  js  c++  java
  • 数据库连接 ADO.NET增删改查

    ADO.net:数据库访问技术
    程序操作的数据都是变量或对象,这些东西都存在于内存中
    但是有很多的数据是存在数据库中的,数据库中的数据存在于硬盘上

    作用:将数据库中的数据取到内存中来,可以让程序进行操作
    将内存中的数据,写入到数据库中

    1、using System.Data.SqlClient; //引用命名空间

    2、建立 数据库连接类
    string str = "server=.;database=Data0515;user=sa;pwd=123;";//连接字符串
    SqlConnection conn = new SqlConnection(str);

    3、建立 数据库操作类
    SqlCommand cmd = conn.CreateCommand();

    cmd.CommandText = "select *from student";

    4、开启数据库连接通道
    conn.Open();

    5、读取数据,数据读取类
    SqlDataReader dr = cmd.ExecuteReader();

    if (dr.HasRows) //是否读取到了数据
    {
    while (dr.Read()) //循环一行一行的往下读
    {
    //每读一行,都要执行的操作
    Console.WriteLine(dr[0].ToString() + " " + dr[1].ToString() + " " + dr[2].ToString() + " " + Convert.ToDateTime(dr[3]).ToString("yyyy年MM月dd日") + " " + Convert.ToInt32(dr[4]));
    }
    }

    6、关闭数据库通道!!!!!
    conn.Close();
    ------------------------------------------------------------------------------------------------
    添加

    让用户输入添加的内容【记得根据具体内容加限制内容!!!】
    Console.Write("请输入学生编号:")
    string Code = Console.ReadLine();

    SqlConnection conn = new SqlConnection("server=.;database=Data0515;user=sa;pwd=123");
    SqlCommand cmd = conn.CreateCommand();

    cmd.CommandText = "insert into student values('" + Code + "','" + Name + "','" + Sex + "','" + Time + "'," + Class + ");";

    try
    {
    conn.Open();
    cmd.ExecuteNonQuery();
    Console.WriteLine("添加成功!");
    }
    catch
    {
    Console.WriteLine("添加失败!");
    }
    finally
    {
    conn.Close();
    }

    修改
    SqlConnection conn = new SqlConnection("server=.;database=Data0515;user=sa;pwd=123");
    SqlCommand cmd = conn.CreateCommand();
    string UpCode = "";

    while (true)
    {
    bool has = false;
    //要修改的主键字段值
    Console.Write("请输入要修改的主键字段值:");
    UpCode = Console.ReadLine();

    cmd.CommandText = "select *from student where sno=" + UpCode;
    conn.Open();
    SqlDataReader dr = cmd.ExecuteReader();
    if (dr.HasRows)
    {
    has = true;
    }
    conn.Close();
    if (has)
    {
    break;
    }
    else
    {
    Console.WriteLine("查无此(字段值对应的)信息,请确定(字段值)输入是否正确!");
    }
    }
    //修改的信息
    Console.Write("请输入修改的信息:");
    string 字段名 = Console.ReadLine();

    //修改数据库数据
    cmd.CommandText = "update student set sname='" + Name + "',ssex='" + Sex + "',sbirthday='" + Time + "',class='" + Class + "' where sno ='" + UpCode + "'";
    try
    {
    conn.Open();
    cmd.ExecuteNonQuery();
    Console.WriteLine("修改成功!");
    }
    catch
    {
    Console.WriteLine("修改失败!");
    }
    finally
    {
    conn.Close();
    }


    删除
    SqlConnection conn = new SqlConnection("server=.;database=Data0515;user=sa;pwd=123");
    SqlCommand cmd = conn.CreateCommand();
    string DelCode = "";
    while (true)
    {
    bool has = false;
    //要删除的主键对应的值
    Console.Write("请输入要删除的学生编号:");
    DelCode = Console.ReadLine();

    cmd.CommandText = "select *from student where sno=" + DelCode;
    conn.Open();
    SqlDataReader dr = cmd.ExecuteReader();
    if (dr.HasRows)
    {
    has = true;
    }
    conn.Close();
    if (has)
    {
    break;
    }
    else
    {
    Console.WriteLine("查无此学生信息,请确定学号输入是否正确!");
    }
    }
    bool isokok = false;
    //1、询问用户是否确定删除
    Console.Write("已查到" + DelCode + "学生的信息,是否确定要删除?(Y/N):");
    while (true)
    {
    string isok = Console.ReadLine();
    if (isok.ToUpper() == "Y")
    {
    isokok = true;
    break;
    }
    else if (isok.ToUpper() == "N")
    {
    isokok = false;
    break;
    }
    else
    {
    Console.Write("输入有误!请重新输入:");
    }
    }
    //2、执行删除
    if (isokok)
    {
    cmd.CommandText = "delete from student where sno = " + DelCode;
    conn.Open();
    cmd.ExecuteNonQuery();
    Console.WriteLine("删除成功!");
    conn.Close();
    }
    cmd.ExecuteNonQuery();
    具体格式请参照作业代码

    -----------------------------------------------------------------------
    作业:
    创建一个数据表:
    AdoStudent 表名:
    Code - 编号:主键 S101 S102 S103
    Name - 姓名:
    Sex - 性别:男是true,女是false
    Birthday - 生日:
    Score - 成绩:decimal

    要求:
    程序一开启, 把所有的学生信息列出来:
    学号 姓名 性别 生日 成绩
    S101 张三 男 1999-1-1 99.8
    ...

    请输入要进行的操作:1-添加,2-修改,3-删除:1

    添加成功后,重新刷新显示最新数据console.clear();

    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)
            {
                //查询
                //建立数据库连接类
                SqlConnection conn = new SqlConnection("serve=.;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"]) + Convert.ToDecimal(dr["score"]).ToString("0.##"));
                        }
                    }
                    //关闭数据库
                    conn.Close();
    
                    #endregion
    
                    //询问用户接下来的操作
                    Console.Write("请输入要进行的操作:(1:添加,2:修改,3:删除)");
                    int caozuo = Convert.ToInt32(Console.ReadLine());
    
                    #region 添加
                    //添加
                    if (caozuo == 1)
                    {
                        //自动生成一个新的学号
                        ArrayList codes = new ArrayList();//定义新的集合,用来放置从数据库中查询出来的已有的code数据
                        cmd.CommandText = "select *from AdoStudent";
                        conn.Open();
                        dr = cmd.ExecuteReader();
                        if (dr.HasRows)
                        {
                            while (true)
                            {
                                //定义新的变量shu来接收数据【转化为int类型(查询到的code.转化成string.从序号1截取到最后)】
                                int shu = Convert.ToInt32(dr["code"].ToString().Substring(1));
                                codes.Add(shu);//将数扔进codes集合里
                            }
                        }
                        conn.Close();
                        //将集合里codes里的数据按从大到小的顺序排列
                        codes.Sort();
                        //获取集合codes中最大的那个数
                        int maxcode = Convert.ToInt32(codes[codes.Count - 1]);
                        string endcode = "s" + (maxcode + 1);//将序号转换成字符串类型
                        //用户输入要添加的学生的所有信息
                        Console.WriteLine("新学生的标号为:" + endcode);
                        string name = "";
                        while (true)
                        {
                            Console.Write("请输入学生姓名:");
                            name = Console.ReadLine();
                            if (name == "")
                            {
                                Console.WriteLine("姓名不能为空!");
                            }
                            else
                            {
                                break;
                            }
                        }
                        bool sex1 = false;
                        string sex = "";
                        while (true)
                        {
                            Console.Write("请输入学生性别:");
                            sex = Console.ReadLine();
                            if (sex == "")
                            {
                                sex1 = true;
                                break;
                            }
                            else if (sex == "")
                            {
                                sex1 = false;
                                break;
                            }
                            else
                            {
                                Console.WriteLine("性别输入错误!");
                            }
                        }
                        DateTime birthday = DateTime.Now;
                        while (true)
                        {
                            Console.Write("请输入学生生日:");
                            try
                            {
                                birthday = Convert.ToDateTime(Console.ReadLine());
                                break;
                            }
                            catch
                            {
                                Console.WriteLine("生日输入有误!");
                            }
                        }
                        decimal score = 0m;
                        while (true)
                        {
                            Console.Write("请输入学生成绩:");
                            score = Convert.ToDecimal(Console.ReadLine());
                            if (score < 0 || score > 100)
                            {
                                Console.WriteLine("成绩输入有误!");
                            }
                            else
                            {
                                break;
                            }
                        }
                        //将数据添加进数据库
                        cmd.CommandText = "insert into AdoStudent values('" + endcode + "','" + name + "','" + sex + "','" + birthday + "'," + score + ");";
                        conn.Open();
                        cmd.ExecuteNonQuery();
                        conn.Close();
                        Console.Clear();  //清空一下显示内容
                        Console.WriteLine("添加成功!");
                        continue;   //跳出此次循环
                    }
                    #endregion
    
                    #region 修改
                    //修改
                    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 == "")
                                    {
                                        Console.WriteLine("姓名不能为空!");
                                    }
                                    else
                                    {
                                        break;
                                    }
                                }
                                bool sex1 = false;
                                string sex = "";
                                while (true)
                                {
                                    Console.Write("请输入学生性别:");
                                    sex = Console.ReadLine();
                                    if (sex == "")
                                    {
                                        sex1 = true;
                                        break;
                                    }
                                    else if (sex == "")
                                    {
                                        sex1 = false;
                                        break;
                                    }
                                    else
                                    {
                                        Console.WriteLine("性别输入错误!");
                                    }
                                }
                                DateTime birthday = DateTime.Now;
                                while (true)
                                {
                                    Console.Write("请输入学生生日:");
                                    try
                                    {
                                        birthday = Convert.ToDateTime(Console.ReadLine());
                                        break;
                                    }
                                    catch
                                    {
                                        Console.WriteLine("生日输入有误!");
                                    }
                                }
                                decimal score = 0m;
                                while (true)
                                {
                                    Console.Write("请输入学生成绩:");
                                    score = Convert.ToDecimal(Console.ReadLine());
                                    if (score < 0 || score > 100)
                                    {
                                        Console.WriteLine("成绩输入有误!");
                                    }
                                    else
                                    {
                                        break;
                                    }
                                }
                                //修改数据库里的数据
                                cmd.CommandText = "update AdoStudent set Name='" + name + "',Sex='" + sex + "',Birthday='" + birthday + "',Score=" + score + " where Code='" + xiugai + "'";
                                conn.Open();
                                cmd.ExecuteNonQuery();
                                conn.Close();
                                Console.Clear();
                                Console.WriteLine("修改成功!");
                                break;//跳出最里面的循环
                            }
                            else
                            {
                                Console.WriteLine("查无此学生信息!");
                            }
                        }
                        continue;
                    }
    
                    #endregion
    
                    #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
                }
            }
        }
    }
  • 相关阅读:
    Working with macro signatures
    Reset and Clear Recent Items and Frequent Places in Windows 10
    git分支演示
    The current .NET SDK does not support targeting .NET Core 2.1. Either target .NET Core 2.0 or lower, or use a version of the .NET SDK that supports .NET Core 2.1.
    Build website project by roslyn through devenv.com
    Configure environment variables for different tools in jenkins
    NUnit Console Command Line
    Code Coverage and Unit Test in SonarQube
    头脑王者 物理化学生物
    头脑王者 常识,饮食
  • 原文地址:https://www.cnblogs.com/123lucy/p/5651641.html
Copyright © 2011-2022 走看看