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
                }
            }
        }
    }
  • 相关阅读:
    hihoCoder 1398 : 网络流五·最大权闭合子图
    hihoCoder:1394 : 网络流四·最小路径覆盖
    hihoCoder 1393: 网络流三·二分图多重匹配
    hihoCoder1378:网络流二·最大流最小割定理
    hihoCoder1369:网络流一·Ford-Fulkerson算法(FF算法)
    [NOIP2011]铺地毯(贪心)
    hdu 3452:Bonsai(最小割)
    hdu 3549:Flow Problem(最大流)
    (转载)JavaScript中定义变量
    (转载)浅谈javascript的分号
  • 原文地址:https://www.cnblogs.com/123lucy/p/5651641.html
Copyright © 2011-2022 走看看