ADO.NET基础巩固-----连接类和非连接类

Posted —阿辉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ADO.NET基础巩固-----连接类和非连接类相关的知识,希望对你有一定的参考价值。

      最近的一段时间自己的状态还是不错的,早上,跑步,上自习看书,下午宿舍里面编程实战,晚上要么练习代码,要么去打球(在不打就没机会了),生活还是挺丰富的。

关于C#的基础回顾就先到前面哪里,这些要自己在工作中慢慢的去体会,不是说看书就可以掌握的。我们都是从学生时代过来的知道每个人的学习情况是不一样的,所以找到自己的学习节奏是最好不过的。

下面是关于访问数据库[ADO.NET]的学习,之前刚开始学习的时候把这些基本的都过了一遍,但是长时间不使用,一些基本的用法还是会遗忘的。

    一:关于ADO.NET中基本名称的解释

     现在我才知道ADO.NET里面分为连接类和断开连接类两种,这些都是从一些基本的关键字(就先这么叫)来区分的。

     连接类:

                   Connection,  Command,  DataReader和 DataAdapter

     连接类可以提取和更新底层数据源中的数据。每个数据提供程序负责实现连接类。

  • Connection

          Connection对象表示与数据源的一次单独的会话,Connection类指定了连接到数据源必须的验证信息。

  • Command

          Command对象使用一个已建立的Connection对象,对数据源执行SQL语句和存储过程。CommandText属性包含了对数据源所执行的sql语句。

  • DataReader

          DataReader提供了对结果集的只前,只读的访问。DataReader对象提供了访问数据的最佳性能,避免了DataSet相关联的开销。可以通过执行Command类的ExecuteReader()方法创建一个DataReader对象。我们可以通过这个对象读取到里面具体的值。里面有个.reader()方法我们可以通过这个来得到。

image

  • DataAdapter

         DataAdapter通过从数据源提取数据,并填充一个(断开连接)的DataSet/DataTable,这个也可以进行更新,反着来。

     断开连接类:

                    DataSet, DataTable, DataColumn,DataRow, DataView, DataRelation和Constraint.

     断开连接类可以对于连接类提供的数据进行离线的访问和操作,以后在使用与底层的数据源进行同步。

  • DataSet

      DataSet是存储在内存中的一个断开连接的关系数据库(不和本地的有任何关系),提供高级浏览功能,作为其它对象的容器,包括DataTable,DataRows,DataColumn我们可以在代码中使用这些对象。

  • DataTable

      DataTable表示加载到内存中的数据的单个表,可以独立存在,也可以作为DataSet中的一部分。

  • DataRow

     DataRow表示DataTable中的一行数据

  • DataColumn

     DataRow表示DataTable中的一列数据

关于上面方法,属性的基本操作

    /// <summary>
    /// 关于ADO.NET中连接类和断开连接类的学习.
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            string connectionString = "";
            string sql = "";
            SqlConnection conn=new SqlConnection(connectionString);
            SqlCommand cmd=new SqlCommand(sql,conn);
            cmd.CommandType=CommandType.Text;   //这里可以修改,要是存储过程的话直接就修改了,这个是枚举类型。
           
            //  1  :使用SqlDataReader来操作
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();      //返回结果: System.Data.SqlClient.SqlDataReader 对象。
            dr.Read();
            //下面就可以取出我们需要的数据了,要是需要多次while()来循环.
            string data1=dr.GetString(0); //一次出现一行数据。
            conn.Close();
            dr.Close();
          
            //  2 : 使用SqlDataApadter来操作
            conn.Open();
            //声明DataTable和DataSet它们是断开连接类,相当于本地的数据库一样。
            DataTable table = new DataTable();
            DataSet ds=new DataSet();
            SqlDataAdapter da=new SqlDataAdapter(cmd);
            da.Fill(table);       //把数据加载到DataTable中,
            da.Fill(ds);          //把数据加载到DataSet中,
            conn.Close();
            //我们可以在上面关闭的情况下,在DataTable和DataSet中找到数据来使用。

            // 3 :关于cmd的一些常用的方法。
            //    ExecuteScalar()+ 执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略其他列或行。
            object rowColumn = cmd.ExecuteScalar();

            //    ExecuteNonQuery()  +对连接执行 Transact-SQL 语句并返回受影响的行数。
            int row=cmd.ExecuteNonQuery();

            //    ExecuteReader()   +将 CommandText 发送到 Connection并生成一个 SqlDataReader并返回。
            SqlDataReader sqa = cmd.ExecuteReader();
            conn.Close();
        }
    }

以上是关于ADO.NET基础巩固-----连接类和非连接类的主要内容,如果未能解决你的问题,请参考以下文章

简单的ADO.NET连接数据小样例

要安装啥 Oracle ADO.NET 连接器?

这两个到 ADO.NET 的连接是不是相同(启用了连接池)?

连接字符串中连接池 ADO.Net 支持的最大和最小大小是多少?

ado.net如何连接 oracle?

使用配置文件定义ADO.NET 的连接字符串