知識(shí)手冊(cè):關(guān)于ADO.NET SqlCommand對(duì)象介紹
#T#了解ADO.NET的朋友都知道,ADO.NET為我們提供了多種對(duì)象模型,下面是其中的兩個(gè)典型的對(duì)象模型,它們都是在System.Data.SqlClient名稱(chēng)空間下。下面我們大家就趕快的來(lái)看看吧!以往編寫(xiě)程序時(shí),我們可以直接通過(guò).NET Framework 所提供的多線(xiàn)程機(jī)制,或是以 Delegate 類(lèi)包裝多線(xiàn)程的方式,在 .NET Framework 所提供的異步架構(gòu)下,設(shè)計(jì)調(diào)用執(zhí)行 Command 對(duì)象實(shí)例。這些方法都是讓一條工作線(xiàn)程(Worker Thread)停止在后臺(tái)中等待執(zhí)行結(jié)果,一旦有結(jié)果后,工作線(xiàn)程再通過(guò)標(biāo)準(zhǔn)的機(jī)制告知結(jié)果。
一、ADO.NET SqlConnection對(duì)象
ADO.NET使用SqlConnection對(duì)象與SQL Server進(jìn)行連接。連接字符串的常用形式有兩種:
1.使用Windows集成安全身份認(rèn)證,例如:
- string connectionString ="IntegratedSecurity=SSPI;Database=MyDatabase.mdf;Server=localhost;";
或:
- string connectionString = "Initial Catalog= MyDataBase; Data Source=localhost;Integrated Security=SSPI;"
2.在連接字符串中指定服務(wù)器名、用戶(hù)id、用戶(hù)口令、數(shù)據(jù)庫(kù)名等信息。例如:
- string connectionString = "server=localhost; uid=sa; pwd=123; database=MyDatabase.mdf";
然后通過(guò)連接字符串直接創(chuàng)建SqlConnection對(duì)象,如
- SqlConnection conn = new SqlConnection(connectionString);
二、ADO.NET SqlCommand對(duì)象
在ADO.NET中,有兩種操作數(shù)據(jù)庫(kù)的方式:
1.無(wú)連接的方式;
2.保持連接的方式。
不論采用哪種方式,都可以通過(guò)ADO.NET SqlCommand對(duì)象提供的方法傳遞對(duì)數(shù)據(jù)庫(kù)操作的命令,并返回命令執(zhí)行的結(jié)果。
在保持連接的方式下操作數(shù)據(jù)庫(kù)的一般步驟為:
1.創(chuàng)建SqlConnection的實(shí)例;
2.創(chuàng)建SqlCommand的實(shí)例;
3.打開(kāi)連接;
4.執(zhí)行命令;
5.關(guān)閉連接。
ADO.NET SqlCommand對(duì)象提供了多種完成對(duì)數(shù)據(jù)庫(kù)操作的方法。常用有:
- ExecuteNonQuery
該方法執(zhí)行SQL語(yǔ)句的結(jié)果,但不返回命令執(zhí)行的表數(shù)據(jù),僅返回操作所影響的行數(shù)。
- ExecuteReader
ExecuteReader方法提供了只向前的、順序的快速讀取數(shù)據(jù)庫(kù)中數(shù)據(jù)的方法。該方法根據(jù)提供的SELECT語(yǔ)句,返回一個(gè)可以順序讀取的SqlDataReader對(duì)象,編程者可以使用Read方法循環(huán)依次讀取每個(gè)記錄中各字段(列)的內(nèi)容。
- ExecuteScaler()
該方法用于執(zhí)行SELECT查詢(xún),得到的返回結(jié)果為一個(gè)值的情況,比如使用count函數(shù)求表中記錄個(gè)數(shù)或者使用sum函數(shù)求和等。

















