zoukankan      html  css  js  c++  java
  • C# 高级编程(笔记7)

    关于ADO.NET:

    1.数据源

       数据源定义的是连接到实际数据库的一条路径而已,数据源中并无真正的数据,它仅仅记录的是你连接到哪个数据库,以及如何连接的,如odbc数据源。也就是说数据源仅仅是数据库的连接名称,一个数据库可以有多个数据源连接。

    2.ODBC,OLEDB,ADO,ADO.NET的区别

      A. ODBC:底层的数据库访问技术,提供了一组规范的API,只能用于访问关系型数据库,很难访问对象数据库及其他非关系型数据库
      B. OLEDB:底层的数据库访问技术,建立在ODBC功能之上的一个开放规范,可以访问关系型和非关系型数据库(信息源)
      C. ADO: 是基于OLEDB的访问接口,它是面向对象的OLEDB技术,继承了OLEDB的优点,属于数据库访问的高层接口。
      D. ADO.NET:
              1)基于OLEDB技术以及.NET Framework类库,可以访问关系型和非关系型数据库/信息源[如:XML, Excel]
              2)ADO.NET附带了3个数据库客户端名称空间,第1个用于SQL Server,第2个用于ODBC数据源,第3个用于通过OLEDB实现的数据库。

     3.高效地使用连接

        一般情况下,当在.NET中使用“稀缺”的资源时,如数据库连接、窗口或图形对象, 最好确保每个资源在使用完后立即关闭

        主要有两种方式可以确保数据库连接等类似的“稀缺”资源在使用完后立即释放:

    1.第一种方式----利用try...catch...finally语句块
    try
    {
        conn.Open();
    }
    catch()
    {
    }
    finally
    {
        conn.Close();    //缺点是需记住在finally方法中手动关闭连接
    }
    
    2.第二种方式----使用using语句块
    只有实现了IDisposable接口的对象,才可以对其使用using语句
    
    using(SqlConnection conn = new SqlConnection( source ))
    {
        conn.Open();
        //Do something useful
    }
    ----using语句对应的IL Code是try{}...finally{}语句块,在finally块中调用Dispose()方法

    4.定义命令(Command)

       Command有三种类型:
       A.CommandType.Text(默认):调用SQL子句                 
       B.CommandType.StoredProcedure:调用存储过程       
       C.CommandType.TableDirect[只对OLEDB提供程序有效]:调用完整的表语句(仅从给定的表中选择所有列和行) 

    5.执行命令

       A.ExecuteNonQuery()
       这个方法一般用于update、insert或delete语句,其中唯一的返回值是受影响的记录个数。但如果调用带输出参数的存储过程,该方法就有返回值  

       B.ExecuteReader()[长时间占用数据库连接]
       根据使用的提供程序返回一个类型化的DataReader对象,返回的对象可以用于遍历返回的记录.
       例如:
                    SqlCommand cmd = new SqlCommand();
                    SqlDataReader reader = cmd.ExecuteReader();
                    while(reader.Read())
                    {
                        //
                    }

        C.ExecuteScalar()
        ----返回结果集中第一行第一列的值
        ----该方法返回一个对象,根据需要,可以把该对象强制转换为合适的类型。如果所调用的sQL只返回一列,则最好使用ExecuteScalar方法来检索这一列。这也适合于只返回一个值的存储过程

    6.DataSet类

       是数据的离线容器,即一次性把数据读入内存,然后立即关闭数据库连接,会占用较多内存,DataSet类由一组数据表[DataTable对象]组成

    7.创建DataTable的3种方式

       A.由运行库生成

      SqlDataAdapter da = new SqlDataAdapter(select, cnnon);
      DataSet ds = new DataSet();
      da.Fill(ds, "Customers"); //填充Customers表

       B.编写代码创建

      DataTable Person = new DataTable("Person");
      Person.Columns.Add(new DataColumn("PersonId",typeof(Int32)));
      ...

        C.在XML的定义文件(XSD)中描述DataTable

    8.填充DataSet

       A.用数据适配器填充DataSet
          SqlDataAdapter da = new SqlDataAdapter(select, cnnon);

       B.从XML中填充DataSet类

          DataSet ds = new Dataset();
          ds.ReadXm1(".\\MyData.Xml");

  • 相关阅读:
    [LeetCode] Letter Combinations of a Phone Number
    [LeetCode] Combinations
    [Algorithms] Longest Increasing Subsequence
    2.Orange安装
    1.Orange是什么鬼?
    5.motan之注解方式配置
    4.motan之集群调用
    3.motan之异步调用
    2、motan入门程序
    1、微博RPC框架Motan
  • 原文地址:https://www.cnblogs.com/notebook2011/p/3112476.html
Copyright © 2011-2022 走看看