zoukankan      html  css  js  c++  java
  • ADO.net 增、删、改、查

    数据访问

    将数据库中的数据,提取到内存中,展示给用户看
    还可以将内存中的数据写入数据库中去

    并不是唯一的数据库访问技术,但是它是最底层的数据库访问技术

    对应命名空间:System.Data.SqlClient;

    SqlConnection:连接对象

    SqlCommand:命令对象

    SqlDataReader:读取器对象

    CommandText:命令文本

    增删改、查分以下几步:

    1、造连接字符串

    string connstring = "server=.;database=mydb;user=sa;pwd=123";

              connstring:造的字符串名

              server指服务器一般是IP地址本机可以使用点;           

                                 database指数据库名称要访问的数据库名称           

                                 user数据库的用户名:一般是sa           

                                 pwd数据库的密码:自己设置的

    2、造连接对象

    SqlConnection conn = new SqlConnection(connstring);

              conn:造的连接对象名

    3、创建命令对象

    SqlCommand cmd = conn.CreateCommand();

              cmd:造的命令对象名

    4、写要执行的SQL语句

         4-1:查询

      cmd.CommandText = "select * from Info"; 

      4-2:添加

      cmd.CommandText = "Insert into Info values('p032','毒哥','True','n001','1987-02-02')";

      4-3:删除

      cmd.CommandText = "delete from Info where Code='p032';

      4-4:更改

       cmd.CommandText = "update Info set name='情方方' where Code='p032';

    5、打开连接

    conn.Open();  //可放在执行之前的任意位置

    6、执行操作

         6-1:(读取操作,返回读取器对象)

      SqlDataReader dr = cmd.ExecuteReader();

      6-2.执行操作(增删改操作,返回行数)   

         cmd.ExecuteNonQuery();

    7、处理数据

         7-1:查询一条数据

      if (dr.HasRows)      //HasRows 判断是否有行数据 bool型,返回true/false   

         {     

                    dr.Read();      //dr.Read() 是数据库数据访问指针,每执行一次都会向下走一行,如果有内容则返回true,同时dr访问为当前行数据集合,可以使用索引或是列名来访问相对应的数据              

                 Console.WriteLine(dr[0]);                   

                     Console.ReadLine();   

          }   

          else   

          {     

                     Console.WriteLine("读取失败!");   

          }

          7-2.查询多条数据

      if (dr.HasRows)   

         {     

                     while(dr.Read())  //使用while循环读取所有数据  一行数据是一个数组,一行数据里有多少列就有多少个索引                   

                     {     

                                Console.WriteLine(dr[0]+"----"+dr[1]);   

                     }

             Console.ReadLine();   

          }   

          else   

          {     

                     Console.WriteLine("没有读到数据");     

                     Console.ReadLine();   

          }

    8、关闭连接

    conn.Close();

    例:根据用户输入一个条件查询数据、查询所有内容

    static void Main1(string[] args)
            {
                //用户输入内容
                Console.WriteLine("请输入要查询的名称:");
                string str = Console.ReadLine();
    
                //造连接字符串
                string connstring = "server=.;database=mydb;user=sa;pwd=123";
    
                //造连接对象
                SqlConnection conn = new SqlConnection(connstring);
    
                //造命令对象
                SqlCommand cmd = conn.CreateCommand();
    
                //准备一条SQL语句
                cmd.CommandText = "select * from Info where Name like '%"+str+"%'";
    
                //打开连接
                conn.Open();
    
                //执行SQL语句
                SqlDataReader dr = cmd.ExecuteReader();
    
                //读取数据
                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        int n = 0;
                        while ( n <dr.FieldCount ) //.FieldCount获取当前行的列数
                        {
                            Console.Write(dr[n]+"	");
                            n++;
                        }
                        Console.WriteLine();
                    }
                }
                else
                {
                    Console.WriteLine("没有查到满足条件的数据");
                }
    
                //关闭连接
                conn.Close();
    
                Console.ReadLine();
    
            }
    View Code
    //SqlConnection conn = new SqlConnection("server=.;database=Data0928;user=sa;pwd=123");
                //SqlCommand com = conn.CreateCommand();
                //com.CommandText = "select ids,username,password,nickname,sex,birthday,nationname,classname from users join nation on users.nation=nation.nationcode join class on users.class=class.classcode";
                //conn.Open();
                //SqlDataReader dr = com.ExecuteReader();
                //if (dr.HasRows)
                //{
                //    while (dr.Read())
                //    {
                //        int n = 0;
                //        while (n < dr.FieldCount)
                //        {
                //            if (dr[n] is Boolean)
                //            Console.Write(((Boolean)dr[n]?"男":"女")+"	");
                //          else  if (dr[n] is DateTime)
                //                Console.Write((((DateTime)dr[n]).ToShortDateString())+"	");
                //            else
                //                Console.Write(dr[n] + "	");
                //            n++;
                //        }
                //        Console.WriteLine();
                //    }
                //}
                //conn.Close();
    View Code

    例:让用户输入要删除的数据主键值(此方法不安全)

    static void Main4(string[] args)
            {
                //用户输入要删除的数据主键值
                Console.WriteLine("请输入要删除的代号:");
                string code = Console.ReadLine();
    
                //判断该数据存不存在
                SqlConnection conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=123");
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "select * from Info where Code='"+code+"'";
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                
    
                if (dr.HasRows)
                {
                    //说明该数据存在
                    Console.WriteLine("查到该数据,是否要执行删除操作,如果要删除请输入:1");
                    int sc = Convert.ToInt32(Console.ReadLine());
    
                    if (sc == 1)
                    {
                        //删除
                        dr.Close(); //关闭读取器
    
                        cmd.CommandText = "delete from Info where Code='"+code+"'";
                        cmd.ExecuteNonQuery();
                        Console.WriteLine("删除成功!");
                        
                    }
                    else
                    {
                        //不删除
                        dr.Read();
    
                        string sex = Convert.ToBoolean(dr[2])?"":"";
                        string nation = MinZu(dr[3].ToString());
    
                        string str = "代号:"+dr[0]+"	姓名:"+dr[1]+"	性别:"+sex+"	民族:"+nation+"	生日:"+dr[4];
    
                        Console.WriteLine(str);
    
    
                    }
                }
                else
                {
                    //数据不存在
                    Console.WriteLine("输入的代号错误!");
                }
    
                conn.Close();
                Console.ReadLine();
            }
    
    
            static string MinZu(string code)
            {
                string name="";
                SqlConnection conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=123");
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "select Name from Nation where Code = '" + code + "'";
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)
                {
                    dr.Read();
                    name = dr[0].ToString();
                }
                conn.Close();
    
                return name;
            }
    View Code

    例:查找用户名 并选择是修改还是删除

     Console.Write("请输入要删除或更改的用户名:");        
                string name = Console.ReadLine();
    
                SqlConnection conn = new SqlConnection("server=.;database=Data0928;user=sa;pwd=123");
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "select * from users where username='"+name+"'";
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)
                {
                    conn.Close();
                    Console.WriteLine("删除选:1,更改选:2");
                    Console.Write("请输入您的选择:");
                    string a = Console.ReadLine();
                    if (a =="1")
                    {                    
                        cmd.CommandText = "delete from users where username='"+name+"'";
                        conn.Open();
                        int i = cmd.ExecuteNonQuery();
                        if (i > 0)
                            Console.WriteLine("删除成功!!");
                        else
                            Console.WriteLine("删除失败!!");
                        conn.Close();
                    }
                    else if (a == "2")
                    {
                        Console.Write("请输入修改后的用户名:");
                        string name1 = Console.ReadLine();
                        cmd.CommandText = "update users set username='" + name1 + "' where username='" + name+ "'";
                        conn.Open();
                        int i = cmd.ExecuteNonQuery();
                        if (i > 0)
                            Console.WriteLine("修改成功!!");
                        else
                            Console.WriteLine("修改失败!!");
                        conn.Close();
                    }
                }            
                else
                    Console.WriteLine("没有您要删除或更改的用户名!");             
                    Console.ReadLine();
    View Code

    例:让用户输入要添加的内容

    static void Main3(string[] args)
            {
                //让用户输入要添加的内容
                Console.WriteLine("请输入要添加的代号:");
                string code = Console.ReadLine();
    
                Console.WriteLine("请输入姓名:");
                string name = Console.ReadLine();
    
                Console.WriteLine("请输入性别:");
                bool sex = Console.ReadLine()==""?true:false;
    
                Console.WriteLine("请输入民族:");
                string nation = Console.ReadLine();
    
                Console.WriteLine("请输入生日:");
                string birthday = Console.ReadLine();
    
                string nationcode = "n001";
    
                //将民族名称转为名族代号
                SqlConnection conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=123");
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "select Code from Nation where Name = '"+nation+"'";
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)
                {
                    dr.Read();
                    nationcode = dr[0].ToString();
                }
                conn.Close();
    
                //往Info表添加数据
                cmd.CommandText = "insert into Info values('"+code+"','"+name+"','"+sex+"','"+nationcode+"','"+birthday+"')";
                conn.Open();
                cmd.ExecuteNonQuery();
                conn.Close();
                Console.WriteLine("添加成功!");
    
                Console.ReadLine();
            }
    View Code
  • 相关阅读:
    Nginx + uWSGI 配置django
    django视图缓存的实现
    scrapy 资料
    scrapy 安装
    程序题做题一般步骤
    检查代码的一般步骤
    Mathematical-Analysis-I-4
    Mathematical-Analysis-I-3
    Mathematical-Analysis-I-1
    Mathematical-Analysis-I-2
  • 原文地址:https://www.cnblogs.com/shadow-wolf/p/6111003.html
Copyright © 2011-2022 走看看