溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ADO.NET編程的基礎(chǔ)知識有哪些

發(fā)布時(shí)間:2020-12-16 15:14:13 來源:億速云 閱讀:140 作者:Leah 欄目:開發(fā)技術(shù)

ADO.NET編程的基礎(chǔ)知識有哪些?很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

一.ADO.NET基礎(chǔ)

程序和數(shù)據(jù)庫交互,要通過ADO.NET進(jìn)行;通過ADO.NET就能在數(shù)據(jù)庫中執(zhí)行SQL了。ADO.NET中提供了對不同數(shù)據(jù)庫的統(tǒng)一操作接口(ODBC)。另外還有一種操作數(shù)據(jù)庫的接口是JDBC。

ADO.NET中通過SqlConnection類創(chuàng)建到SQL Server的鏈接,Sqlconnection代表一個(gè)數(shù)據(jù)庫的鏈接,ADO.NET中的鏈接等資源都實(shí)現(xiàn)了IDisposable接口。

實(shí)現(xiàn)了IDisposable接口的對象,在使用完了,要進(jìn)行資源的釋放。調(diào)用Dispose()方法。

連接方式訪問數(shù)據(jù)庫,連接要打開,使用完要關(guān)閉。關(guān)閉之后,還可以再打開,這就是Close和Dispose的區(qū)別。Dispose(),是完全釋放資源。

現(xiàn)在來測試一下,連接數(shù)據(jù)庫是否成功了。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//使用ADO.NET技術(shù),必須要導(dǎo)入這兩個(gè)命名空間
using System.Data;
using System.Data.SqlClient;
//
namespace ADO.NET1
{
  class Program
  {
    static void Main(string[] args)
    {
      //創(chuàng)建數(shù)據(jù)庫連接(連接字符串)
      string sqlCon = "server=.;database=DB_MyStudentLife;uid=sa;pwd=Password_1";
      SqlConnection scon = new SqlConnection(sqlCon);

      //打開數(shù)據(jù)庫連接
       scon.Open();

      //測試,判斷數(shù)據(jù)庫的連接狀態(tài)
      if (scon.State == ConnectionState.Closed)
      {
        
        Console.WriteLine("連接數(shù)據(jù)庫失敗");
      }
      if (scon.State == ConnectionState.Open)
      {
        Console.WriteLine("成功打開連接數(shù)據(jù)庫,連接成功");
      }
      Console.ReadKey();
    }
  }
}

ADO.NET編程的基礎(chǔ)知識有哪些

測試效果圖:

ADO.NET編程的基礎(chǔ)知識有哪些

最后我們來看看SqlConnection對象的內(nèi)部原理吧:使用反編譯工具reflector就可以;

1.從圖中,我們看出來,SqlConnection繼承了DbConnection類,實(shí)現(xiàn)了ICloneable接口

ADO.NET編程的基礎(chǔ)知識有哪些

2.ICloneable接口里面是啥樣子呢,我們來看一下,反編譯:

ADO.NET編程的基礎(chǔ)知識有哪些

3.接下來,我們看下Dbconnection類:

從圖中可以看出,Dbconnection類是一個(gè)抽象類,繼承了Component類,實(shí)現(xiàn)了IDbConnection接口,和IDisposable接口,下面我們分別來看看這幾個(gè)

ADO.NET編程的基礎(chǔ)知識有哪些

4.Component類:

看得出來這個(gè)類,也實(shí)現(xiàn)了IDisposable接口哦,

ADO.NET編程的基礎(chǔ)知識有哪些

好了,其他還是來看看IDisposable接口內(nèi)部的神秘面紗吧:

ADO.NET編程的基礎(chǔ)知識有哪些

看得出來,IDisosable定義了一個(gè)Dispose(),抽象無返回值的方法。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI