ADO.NET的主要對象

來源:互聯網
上載者:User

標籤:static   ndt   manager   and   text   str   服務   ima   .net   

ADO.NET主要分為五個對象:

1)Connection對象:用來串連程式與資料庫。沒有利用連線物件將資料庫開啟,是無法從資料庫中取得資料的。Close和Dispose的區別,Close之後還可以用Open開啟資料庫,Dispose是釋放資源,Dispose之後將不能再用Open。

2)Command對象:主要迎來對資料庫發出一些指令,例如增刪改查等指令,另外也可以調用資料庫中的預存程序,這個對象時架構在Connection對象上,也就是Command對象是透過Connection串連到資料來源。

3)DataAdapter:主要用在資料來源以及DataSet之間執行資料轉送的工作,可以通過Command對象下達命令之後,將取得的資料放入DataSet中,這個對象是架構在Command對象上,並提供了許多配合DataSetshiyong 的功能。

4)DataSet:這個對象可是看作是一個暫存區(暫時儲存地區),可以把從資料庫中所查詢到的資料保留起來,甚至可以將整個資料庫顯示出來,DataSet是存放在記憶體中的,DataSet不僅可以儲存多個Table,還可以通過DataAdapter對象取得一些例如主鍵的呢過的資料表結構,並可以記錄資料表之間的關聯。DataSet對象可以說是ADO.NET中的重量級對象,這個對象架構在DataAdapter對象上,本身不具備和資料來源溝通的能力,也就是說,我們是將DataAdapter對象當做是DataSet與資料來源DB之間的橋樑 ,DataSet中包含若干DataTable,DataTable中包含若干DataRow。

5)DataReader:當我們只需要迴圈的讀取資料而不需要其他的操作的時候,可以使用DataReader對象。DataReader對象只是一次一條向下迴圈的讀取資料來源中的資料,這些資料是存在資料庫伺服器中的,而不是一次性載入到程式的記憶體中的,只能讀取到當前行的資料,而且這些資料只是唯讀,並不允許其他動作。因為DataReader在讀取資料的時候限制了一次一條的讀取,而且只能唯讀,所以使用起來不但節省資源而且效率很好,使用DataReader對象除了效率好之外,因為不用把資料全部傳回,因此可以降低網路的負載。

總結:ADO.NET使用Connection對象來串連資料庫,使用Command對象或DataAdapter對象來執行SQL語句,並將執行的結果返回給DataReader或者DataAdapter,然後在使用取得的DataReader或者DataAdapter對象操作資料結果。

以下是常用的sqlHelper.cs(部分功能實現):

using System;using System.Collections.Generic;using System.Configuration;using System.Linq;using System.Web;using System.Data;using System.Data.SqlClient;namespace WebApplication1.WebHelper{    public static class SqlHelper    {        //取得連接字串        public static readonly string connString = ConfigurationManager.ConnectionStrings["defaultConnString"].ConnectionString;        //sql操作過程:開啟串連-->建立命令-->給sql語句-->執行語句-->處理結果        public static int ExecuteNonQuery(string sql)        {            using (SqlConnection conn = new SqlConnection(connString))            {                conn.Open();                using (SqlCommand cmd = conn.CreateCommand())                {                    cmd.CommandText = sql;                    //返回執行sql語句影響的行數                    return cmd.ExecuteNonQuery();                }            }        }        public static object ExecuteScalar(string sql)        {            using (SqlConnection conn = new SqlConnection(connString))            {                conn.Open();                using (SqlCommand cmd = conn.CreateCommand())                {                    cmd.CommandText = sql;                    return cmd.ExecuteScalar();                }            }        }        //只用來執行查詢結果比較少的sql        public static DataSet ExecuteDataSet(string sql)         {            //方法1            //using (SqlConnection conn = new SqlConnection(connString))            //{            //    conn.Open();            //    using (SqlCommand cmd = conn.CreateCommand())            //    {            //        cmd.CommandText = sql;            //        SqlDataAdapter adapter = new SqlDataAdapter(cmd);            //        DataSet ds = new DataSet();            //        adapter.Fill(ds);            //        return ds;            //    }            //}            //方法2            using (SqlConnection conn = new SqlConnection(connString))            {                SqlCommand cmd = new SqlCommand();                PrepareCommand(cmd,conn,sql);                using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))                {                    DataSet ds = new DataSet();                    adapter.Fill(ds);                    return ds;                } ;            }                   }        public static void PrepareCommand(SqlCommand cmd,SqlConnection conn, string sql)        {            if (conn.State != ConnectionState.Open)            {                conn.Open();            }            cmd.Connection = conn;            cmd.CommandText = sql;        }    }}
sqlhelper.cs

 

  

 

ADO.NET的主要對象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.