新聞中心
ADO.NET在處理數(shù)據(jù)時,可分為連接式與斷開式

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的新巴爾虎左網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
ADO.NET涉及到的主要對象:
連接對象:Connection
命令對象:Command
數(shù)據(jù)讀取器對象:DataReader
數(shù)據(jù)適配器對象:DataAdapter
數(shù)據(jù)集對象: DataSet
下面是一個簡單的ADO.NET連接式訪問數(shù)據(jù)庫的代碼
- private static void ReadOrderData(string connectionString)
- {
- string queryString =
- "SELECT OrderID, CustomerID FROM dbo.Orders;";
- //此處使用using來自動釋放connection
- using (SqlConnection connection =
- new SqlConnection(connectionString))
- {
- SqlCommand command =
- new SqlCommand(queryString, connection);
- connection.Open();
- SqlDataReader reader = command.ExecuteReader();
- // SqlDataReader 的默認(rèn)位置在***條記錄前面。因此,必須調(diào)用 Read 來開始訪問任何數(shù)據(jù)
- while (reader.Read())
- {
- Console.WriteLine(String.Format("{0}, {1}",
- reader[0], reader[1]));
- }
- // 關(guān)閉reader
- reader.Close();
- //對于SqlConnection的MARS模式關(guān)閉的情況下,一次只能打開一個 SqlDataReader,在***個關(guān)閉之前,打開另一個的任何嘗試都將失敗。另外,在reader不關(guān)閉之前,相同的command.ExecuteReader();將會失敗(無論是否為MARS)
- }
- }
接下來對上面這段代碼做一些說明:
代碼:
- Console.WriteLine(String.Format("{0}, {1}",
- reader[0], reader[1]));
使用了reader的索引器,
索引器調(diào)用所的方法如下:
- override public object this[int i] {
- get {
- return GetValue(i);
- }
- }
- override public object this[string name] {
- get {
- return GetValue(GetOrdinal(name));
- }
- }
(二)關(guān)于command的一些方法的說明
ExecuteNonQuery 對連接執(zhí)行 Transact-SQL 語句并返回受影響的行數(shù)。 (重寫 DbCommand..::.ExecuteNonQuery()()()。)
ExecuteReader 已重載。 將 CommandText 發(fā)送到 Connection 并生成一個 SqlDataReader。
ExecuteScalar 執(zhí)行查詢,并返回查詢所返回的結(jié)果集中***行的***列。忽略其他列或行。 (重寫
DbCommand..::.ExecuteScalar()()()。)
ExecuteXmlReader 將 CommandText 發(fā)送到 Connection 并生成一個 XmlReader 對象。
(三)關(guān)于connectionstring
以下是常用的幾種connectionstring
- //基本
- string baseconnstr="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword";
- //MARS
- string marsconnstr="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"
- +"MultipleActiveResultSets=true"
- //在app_data文件夾中的sqlexpress.mdf
- string mdfDataDir="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;"
- //使用SQL集群故障轉(zhuǎn)移
- string mirrorconnstr="Data Source=myServerAddress;Failover Partner=myMirrorServerAddress;Initial Catalog=myDataBase;Integrated Security=True;"
- //異步
- string asynconnstr="Server=myServerAddress;Database=myDataBase;Integrated Security=True;Asynchronous Processing=True;"
MARS中,其實(shí)ADO.NET是對未關(guān)閉的sqlcommand掛起.所以datareader只能使用其各自的command實(shí)例.
當(dāng)前名稱:淺析ADO.NET的相關(guān)知識
轉(zhuǎn)載注明:http://www.dlmjj.cn/article/djgophd.html


咨詢
建站咨詢
