欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > ADO.NET數據庫訪問技術

ADO.NET數據庫訪問技術

熱門標簽:硅基電話機器人官網 西安電話自動外呼系統 電話機器人怎么看余額 美國地圖標注軟件下載 漯河電銷回撥外呼系統 城市地圖標志怎么標注 合肥crm外呼系統加盟 長沙外呼系統平臺 怎么修改高德地圖標注

一. ADO.NET的定義


ADO.NET來源于COM組件庫ADO(即ActiveX Data Objects),是微軟公司新一代.NET數據庫的訪問模型,是目前數據庫程序設計人員用來開發基于.NET的數據庫應用程序的主要接口。它利用.NET Data Provider(數據提供程序)進行數據庫的連接和訪問,通過ADO.NET數據庫程序能夠使用各種對象來訪問符合條件的數據庫內容,讓提供數據庫管理系統的各個廠商可以根據此標準開放對應的.NET Data Provider,這樣設計數據庫應用程序人員不必了解各類數據庫底層運作的細節,只要掌握ADO.NET所提供對象的模型,便可訪問所有支持.NET Data Provider的數據庫。

ADO.NET結構模型如下所示:

 圖1. ADO.NET結構模型

  ADO.NET是一個類庫,這些類提供了很多的對象,可用于完成數據庫連接和增刪查改等操作。其中包括如下五個對象: 1)Connection:用來連接數據庫(SQL Server使用的是SqlConnection對象); 2)Command:用來對數據庫執行SQL命令,如增刪查改等操作; 3)DataReader:用來從數據庫中返回只讀數據,用數據源填充DataSet對象; 4)DataAdapter:與DataSet對象相結合使用,實現對數據庫的控制; 5)DataSet:可看作離線時內存中的數據庫; 這五個對象提供了兩種讀取數據庫的方式; 第一種方式:使用Connection、Command、DataReader,其權限只能讀取或查詢數據庫; 第二種方式:使用Connection、Command、DataAdapter、DataSet,其權限能進行各種數據庫的操作。 ADO.NET讀取數據庫操作示意圖: 

圖1. ADO.NET結構模型

 
二. 使用ADO.NET在線訪問數據庫的步驟(這里用的是SQL Server 數據庫)
 
1. 連接數據庫
直接上一段代碼:

using System.Data.SqlClient;
string source = "server=(local); integrated security=SSPI; database=myDateabase;User ID=sa;pwd=sa"; 
SqlConnection conn = new SqlConnection(source); 
conn.Open(); 
// 對數據庫數據進行操作 
conn.Close();


  (1). 首先添加命名空間System.Data.SqlClient;

(2). 定義數據庫連接字符串:

第一種方法:直接把數據庫連接字符串存放在字符串對象中,如上代碼所示;

第二種方法Web:將數據庫連接信息存放在web.config配置文件中,然后通過使用ConfigurationStringSettings類進行調用。來個例子說明一下:

(a). 首先,在web.config配置文件的部分定義數據庫連接信息:

configuration>
connectionStrings>
add name="myDatabase" connectionString="server=(local); integrated security=SSPI; database=myDateabase;User ID=sa;pwd=sa" providerName="System.Data.SqlClient" />
/connectionStrings>
/configuration>


(b). 在項目文件中,添加對Configuration的引用,在頭部添加using System.Configuration。然后定義數據庫連接字符串為:

復制代碼 代碼如下:
string connstring = ConfigurationManager.ConnectionStrings["myDatabase"].ConnectionString;


備注:必須添加對System.Configuration程序集的引用,才能解析上述代碼中使用的ConfigurationManager類。

2. 創建數據庫連接
1)創建Connection對象:

string conn = new SqlConnection(connString); 

2)打開數據庫: conn.Open(); 一般情況下,當在.NET中使用“稀缺”的資源時,如數據庫連接、窗口或圖形對象,最好確保每個資源在使用完畢后立即關閉。盡管.NET的設計人員實現了自動垃圾收集機制,垃圾最終會被回收,但仍需要盡可能早地釋放資源,以避免出現資源匱乏的情況。 當編寫訪問數據庫的代碼時,因為使連接打開的時間略長于需要的時間,就可能影響其他會話。在極端的情況下,不關閉連接可能會使其他用戶無法進入一整組數據表,極大地降低應用程序的性能。主要有兩種方式可以確保數據庫連接等類似的“稀缺”資源在使用完后立即釋放。這兩種方式如下: (1)第一種方式:采用try...catch...finally語句塊 確保在finally中關閉任何已打開的連接。

try { 
// open the connection 
conn.Open(); 
// 對數據庫數據進行操作 
} catch (SqlException ex) { 
// log the exception 
} finally { 
conn.Close(); 
}


在給定的方法中可能會打開許多資源,這樣try...catch...finally塊的層次有時候不容易看清。還有一種方式可以確保資源的關閉——using語句。 (2)使用using語句塊

using(SqlConnection conn = new SqlConnection(connstring)){ 
// Open the connection 
conn.Open(); 
// 對數據庫數據進行操作 
}


無論塊是如何退出的,using子句都會確保關閉數據庫連接。 

 
3. 創建數據庫操作命令:


Connection對象與數據源建立連接后,使用Command對象對數據源執行查詢、插入、修改和刪除等操作。

(1) 創建SQL數據庫操作命令: sqlQuery查詢語句具體規則請詳見我的系列文章:【讀書筆記】SQL Server查詢語句_鄧智容 (2) 創建Command對象:

(a). 方法一:

復制代碼 代碼如下:
SqlCommand command = new SqlCommand(); command.Connection = conn; command.CommandText = "SQL語句";

(b). 方法二:

SqlCommand command = new SqlCommand("SQL語句", conn); 

備注: 1). SQL查詢語句若含有C#程序的變量并以字符串形式連接,則應注意數據為非數字的變量應用單引號括起來; 2). 在SQL查詢語句中使用參數化查詢語句的話,譬如:

command.CommandText = "SELECT * FROM myTable WHERE siteName=@siteName"; 

當需要給該參數賦值時,可以使用Command對象建立參數對象,然后再賦值:

復制代碼 代碼如下:
command.Parameters.Add(new SqlParameter(@siteName, siteName)); command.Parameters["@siteName"].Value = "http://#";

備注: 在.Net Framework 2.0中SqlClient增加了AddWithValue(string parameterName, object value)方法。該方法簡化了調用儲存過程的輸入參數過程,在運行時對所輸入的數據類型進行判斷,獲取對應的數據庫類型。 因此該方法在運行效率上比用 Add(string parameterName, SqlDbType sqlDbType, int size, string sourceColumn)方法要低。 在效率要求較高的地方仍然建議使用Add()方法,其它場合可以使用AddWithValue()簡化代碼編寫量。

 
4. 執行sqlQuery命令:


定義好命令后,就需要執行它。執行的語句有多種方式,這取決于要從命令中返回什么數據。Command類提供了下述可執行的命令: (1) ExecuteNonQuery() —— 執行命令,但不返回任何結果。一般用于UPDATE、INSERT或DELETE語句中,其中唯一的返回值是受影響的記錄個數。但如果調用帶有輸出參數的存儲過程,該方法就有返回值。 (2) ExecuteReader() —— 執行命令,返回一個類型化的IDataReader。是從數據源中選擇某些數據的最簡單快捷的方法。 (3) ExecuteScalar() —— 執行命令,返回結果集中的第一行第一列的值。

 
5. 對數據庫操作完畢后關閉數據庫連接:


conn.Close();

 
三. 離線數據庫訪問


DataAdapter對象主要在Connection對象和DataSet對象之間執行數據的傳輸工作,將數據填充到DataSet對象中,也可把DataSet對象更新后的數據返回到數據源中,也可架構在Command對象上,通過CommandBuilding對象生成DataAdapter的Insert、Update和Delete等SQL操作命令。使用DataSet和DataTable對象訪問數據源后,ADO.NET會自動離線,在內存中處理數據,如有修改數據的操作,將自動重新連接數據源,更新數據庫。DataSet對象、DataAdapter對象與數據源之間的關系如下:

DataSet ---> DataAdapter ---> 數據源
下面是使用DataAdapter進行離線數據庫訪問的操作步驟:

1. 創建DataAdapter、DataTable對象(使用的是SQL Server數據庫)

復制代碼 代碼如下:
SqlAdapter da = new SqlAdapter("sqlQuery查詢語句", conn); DataSet = ds = new DataSet(); DataTable dt = new DataTable();

2. 將數據填充到DataTable對象

da.Fill(ds, "TableName"); dt = ds.Tables["TableName"]; 

3. 對DataTable中的數據進行處理 TataTable對象的屬性和方法有: 

名稱 屬性/方法 說明
Rows.Add() 方法 插入新數據行
Rows[n].Delete() 方法 刪除第n行的記錄
Rows.Count 屬性 獲取行數
Rows[i]["ColumnName"] 屬性 獲取第i行、列名為ColumnName的值
Rows[i][j] 屬性 獲取第i行、第j列的值
 
  還有一種數據查詢技術:LINQ。下回再討論。

通過以上對ADO.NET數據庫訪問技術的介紹,希望對大家有所幫助。

您可能感興趣的文章:
  • 用C#對ADO.NET數據庫完成簡單操作的方法
  • 淺談ADO.NET數據庫腳本

標簽:廣西 吉林 撫順 商洛 玉溪 文山 濟源 瀘州

巨人網絡通訊聲明:本文標題《ADO.NET數據庫訪問技術》,本文關鍵詞  ADO.NET,數據庫,訪問,技術,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ADO.NET數據庫訪問技術》相關的同類信息!
  • 本頁收集關于ADO.NET數據庫訪問技術的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    麻豆国产精品一区二区三区 | 日韩精品123区| 精品嫩草影院久久| 日韩中文字幕不卡| 免费a v网站| 欧美福利视频一区| 亚洲国产裸拍裸体视频在线观看乱了| 91蜜桃网址入口| 在线观看91视频| 亚洲综合一区二区三区| 中文字幕avav| 欧美日韩久久不卡| 午夜一区二区三区视频| 国产精品无码专区| 精品精品国产高清a毛片牛牛| 玖玖九九国产精品| 天天干天天舔天天操| 久久精品亚洲精品国产欧美kt∨| 精品亚洲成a人| 麻豆一区在线观看| 中文字幕av免费专区久久| 风间由美一区二区三区在线观看 | 国产人成一区二区三区影院| 国产在线一区二区| 少妇高潮在线观看| 亚洲人午夜精品天堂一二香蕉| 99综合电影在线视频| 欧美视频一区二区| 亚洲成人av福利| 中文字字幕码一二三区| 久久综合久久综合九色| 国产成人av自拍| 欧洲一区二区av| 午夜精品在线视频一区| 国产精品天天干| 国产精品久久久久桃色tv| 中文字幕人妻无码系列第三区| 在线观看区一区二| 日产国产高清一区二区三区| 亚洲最大成人综合网| 《视频一区视频二区| 深田咏美中文字幕| 久久久综合激的五月天| 成人黄色av电影| 在线不卡的av| 国产伦精品一区二区三区免费迷| 国产精品九九九九九九| 午夜精品一区二区三区免费视频 | 在线观看91视频| 天堂va蜜桃一区二区三区漫画版| 亚洲av成人无码久久精品| 国产精品女上位| 人妻激情偷乱频一区二区三区| 精品久久人人做人人爰| 成人av在线播放网址| 欧美精品电影在线播放| 国产一区二区影院| 欧美日韩综合在线免费观看| 免费观看一级特黄欧美大片| 中国毛片直接看| 天堂影院一区二区| 国产精品白丝喷水在线观看| 亚洲国产裸拍裸体视频在线观看乱了| 69视频在线观看免费| 亚洲精品亚洲人成人网在线播放| 噜噜噜在线视频| 国产精品国产三级国产普通话99 | 欧美日韩国产大片| 国产精品资源网| 欧美伦理影视网| 国产成人精品亚洲午夜麻豆| 777午夜精品免费视频| 国产成人在线色| 678五月天丁香亚洲综合网| 国产成人啪午夜精品网站男同| 欧美精品第1页| 成人性生交大片| 精品国产欧美一区二区| 在线观看你懂的视频| 国产欧美日韩视频一区二区| 国产a级黄色片| 成人欧美一区二区三区小说| 国产亚洲精品熟女国产成人| 亚洲高清视频在线| 中文字幕在线观看成人| 精品一区二区三区香蕉蜜桃| 9191成人精品久久| 91网站在线观看视频| 国产亚洲美州欧州综合国| 精品视频站长推荐| 亚洲精品视频观看| 一级片一级片一级片| 激情欧美日韩一区二区| 91精品国产免费| 91浏览器入口在线观看| 国产精品每日更新| 美国黄色特级片| 秋霞国产午夜精品免费视频| 欧美日韩一区视频| 成人av资源站| 国产精品久久久久久亚洲毛片 | 九九久久精品视频| 91精品国产综合久久精品图片| 91视频免费看| 亚洲欧洲色图综合| 四虎永久免费地址| 国产精品资源网站| 国产亚洲欧洲997久久综合 | 亚洲国产视频一区二区| 色综合 综合色| 岛国一区二区在线观看| 国产欧美一区二区精品婷婷| 欧美18—19性高清hd4k| 蜜桃免费网站一区二区三区| 91精品国产综合久久香蕉麻豆 | 欧美精品久久99久久在免费线 | 日韩经典一区二区| 制服丝袜中文字幕一区| www日本在线观看| 亚洲一区二区不卡免费| 欧美色图一区二区三区| 97精品久久久午夜一区二区三区| 中文字幕一区在线观看视频| 动漫性做爰视频| 成人v精品蜜桃久久一区| 中文字幕5566| 日本午夜一本久久久综合| 日韩一级二级三级精品视频| 免费无码一区二区三区| 日本欧美在线看| 精品国产不卡一区二区三区| 熟女俱乐部一区二区视频在线| 免费美女久久99| 久久这里只有精品首页| 少妇视频在线播放| 国产盗摄一区二区| 最新不卡av在线| 欧美三级在线看| 91av在线免费| 激情图片小说一区| 中文一区在线播放| 一本大道久久a久久综合婷婷| 91麻豆产精品久久久久久| 亚洲国产aⅴ天堂久久| 91精品国产色综合久久ai换脸 | 极品白嫩丰满美女无套| 美国精品在线观看| 国产偷v国产偷v亚洲高清| www.97视频| 亚洲成人激情小说| 日本成人中文字幕在线视频| 久久综合九色综合久久久精品综合| 国产又粗又猛又爽又黄的视频四季| 高清成人免费视频| 亚洲夂夂婷婷色拍ww47| 欧美一区二区网站| 妖精视频在线观看免费 | 日本道色综合久久| 亚洲无人区码一码二码三码| 美女www一区二区| 国产精品久久久久久亚洲毛片 | 亚洲国产成人高清精品| 精品久久五月天| 东方av正在进入| 91亚洲一线产区二线产区| 美女www一区二区| 国产精品灌醉下药二区| 欧美群妇大交群的观看方式| 亚洲av无码国产精品麻豆天美| 国产成人aaa| 亚欧色一区w666天堂| 久久久99精品免费观看| 在线精品视频免费播放| 一级性生活大片| 成人免费看片app下载| 欧美日韩中字一区| 国产精品揄拍100视频| 成人黄色电影在线| 日韩高清在线一区| 国产精品久久久久婷婷| 欧美一区二区三区的| 国产成人av免费在线观看| a级片在线观看视频| 国产精品一区一区三区| 亚洲一二三四在线| 国产人久久人人人人爽| 欧美老年两性高潮| 婷婷社区五月天| 一区二区三区少妇| 99久久精品情趣| 精品一区二区精品| 亚洲韩国一区二区三区| 欧美国产精品一区二区三区| 91麻豆精品国产91久久久久| 国产女人18水真多毛片18精品| 好吊一区二区三区视频| 91网上在线视频| 国产一二三精品| 日韩精品视频网站| 亚洲精品视频在线观看免费|