zoukankan      html  css  js  c++  java
  • 无废话ADO.NET 第二章 关于连接

    以SQLServer为例子进行说明,包含以下内容:

      如何进行连接

      如何关闭连接

      池的问题

      连接状态

    1.如何进行连接

    // 创建连接实例
    DbConnection myConnection = new SqlConnection();
    // 设置连接字符串
    myConnection.ConnectionString = "user id=userName;password=pass;initial catalog=northwind;data source=mySQLServer;Connect Timeout=30";
    // 打开连接
    myConnection.Open();

    2.如何关闭连接

    // 创建连接实例
    DbConnection myConnection = new SqlConnection();
    // 设置连接字符串
    myConnection.ConnectionString = "user id=userName;password=pass;initial catalog=northwind;data source=mySQLServer;Connect Timeout=30";
    // 打开连接
    myConnection.Open();
    // 关闭连接,用Dispose也可以实现关闭;连接实例被垃圾回收器回收的时候不会自动释放数据库连接
    myConnection.Close();

    3.池的问题

      当连接打开时,将根据一种精确的匹配算法来创建连接池,该算法会使连接池与连接中的字符串相关联。
      每个连接池都与一个不同的连接字符串相关联。当新连接打开时,如果连接字符串不精确匹配现有池,则将创建一个新池。

      在以下示例中,将创建三个新的 SqlConnection 对象,但只需要使用两个连接池来管理这些对象。
      请注意,第一个和第二个连接字符串的差异在于为 Initial Catalog 分配的值

    SqlConnection conn = new SqlConnection();
    conn.ConnectionString
    = "Integrated Security=SSPI;Initial Catalog=northwind";
    conn.Open();
    // Pool A is created.

    SqlConnection conn
    = new SqlConnection();
    conn.ConnectionString
    = "Integrated Security=SSPI;Initial Catalog=pubs";
    conn.Open();
    // Pool B is created because the connection Strings differ.

    SqlConnection conn
    = new SqlConnection();
    conn.ConnectionString
    = "Integrated Security=SSPI;Initial Catalog=northwind";
    conn.Open();
    // The connection String matches pool A.

     

      以上是连接字符串中与池相关的设置。

      关于池的概念这里不多说

    4.连接状态

      通过连接实例的State属性,可以观察数据库连接的状态,共有如下种状态

                System.Data.ConnectionState.Closed
                System.Data.ConnectionState.Open
                System.Data.ConnectionState.Connecting
                System.Data.ConnectionState.Executing
                System.Data.ConnectionState.Fetching
                System.Data.ConnectionState.Broken

      StateChange事件在 Connection 的状态出现更改时发生。StateChange 事件接收 StateChangeEventArgs,它们使您能够使用 OriginalState 和 CurrentState 属性来确定 Connection 状态中的更改。OriginalState 属性它指示 Connection 在更改前的状态。CurrentState 它指示 Connection 在更改后的状态。

          myConnection.StateChange += new StateChangeEventHandler(OnStateChange);

    protected static void OnStateChange(object sender, StateChangeEventArgs args)
    {
    Console.WriteLine(
    "The current Connection state has changed from {0} to {1}.",
    args.OriginalState, args.CurrentState);
    }

  • 相关阅读:
    [kuangbin带你飞]专题十二 基础DP1
    bits/stdc++.h
    第七届 山东省ACM Execution of Paladin(水题)
    poj 1523 SPF【点双连通求去掉割点后bcc个数】
    hdoj 5112 A Curious Matt
    【转】我,一个写代码的
    poj 3177 Redundant Paths【求最少添加多少条边可以使图变成双连通图】【缩点后求入度为1的点个数】
    数据结构第二次上机实验【链表实现多项式的加法和乘法】
    hdoj 4612 Warm up【双连通分量求桥&&缩点建新图求树的直径】
    hdoj 3849 By Recognizing These Guys, We Find Social Networks Useful【双连通分量求桥&&输出桥&&字符串处理】
  • 原文地址:https://www.cnblogs.com/hutou/p/1963691.html
Copyright © 2011-2022 走看看