成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ADO.NET連接經驗介紹

開發 后端
這里介紹ADO.NET連接創建 Northwind 對象,然后與此對象共享一個 ADO.NET 事務。此事務既用于通過 ADO.NET連接執行 SQL 命令,又用于通過 Northwind 對象提交更改。

本文向大家介紹ADO.NET連接,可能好多人還不了解ADO.NET連接,沒有關系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。

LINQ to SQL基于由 ADO.NET 提供程序模型提供的服務。因此,我們可以將 LINQ to SQL 代碼與現有的 ADO.NET 應用程序混合在一起,將當前 ADO.NET 解決方案遷移到 LINQ to SQL。

1.連接

在創建 LINQ to SQL DataContext 時,可以提供現有 ADO.NET連接。對 DataContext 的所有操作(包括查詢)都使用所提供的這個連接。如果此連接已經打開,則在您使用完此連接時,LINQ to SQL 會保持它的打開狀態不變。我們始終可以訪問此連接,另外還可以使用 Connection 屬性自行關閉它。

  1. //新建一個標準的ADO.NET連接:  
  2. SqlConnection nwindConn = new SqlConnection(connString);  
  3. nwindConn.Open();  
  4. // ... 其它的ADO.NET數據操作代碼... //  
  5. //利用現有的ADO.NET連接來創建一個DataContext:  
  6. Northwind interop_db = new Northwind(nwindConn);  
  7. var orders =  
  8. from o in interop_db.Orders  
  9. where o.Freight > 500.00M  
  10. select o;  
  11. //返回Freight>500.00M的訂單  
  12. nwindConn.Close(); 

語句描述:這個例子使用預先存在的ADO.NET連接創建Northwind對象,本例中的查詢返回運費至少為500.00 的所有訂單。

2.事務

當我們已經啟動了自己的數據庫事務并且我們希望DataContext 包含在內時,我們可以向 DataContext 提供此事務。
通過 .NET Framework 創建事務的***方法是使用 TransactionScope 對象。通過使用此方法,我們可以創建跨數據庫及其他駐留在內存中的資源管理器執行的分布式事務。事務范圍幾乎不需要資源就可以啟動。它們僅在事務范圍內存在多個連接時才將自身提升為分布式事務。

  1. using (TransactionScope ts = new TransactionScope())  
  2. {  
  3. db.SubmitChanges();  
  4. ts.Complete();  

注意:不能將此方法用于所有數據庫。例如,SqlClient 連接在針對 SQL Server 2000 服務器使用時無法提升系統事務。它采取的方法是,只要它發現有使用事務范圍的情況,它就會自動向完整的分布式事務登記。

下面用一個例子說明一下事務的使用方法。在這里,也說明了重用 ADO.NET 命令和 DataContext 之間的同一連接。

  1. var q =  
  2. from p in db.Products  
  3. where p.ProductID == 3  
  4. select p;  
  5. //使用LINQ to SQL查詢出來  
  6. //新建一個標準的ADO.NET連接:  
  7. SqlConnection nwindConn = new SqlConnection(connString);  
  8. nwindConn.Open();  
  9. //利用現有的ADO.NET連接來創建一個DataContext:  
  10. Northwind interop_db = new Northwind(nwindConn);  
  11. SqlTransaction nwindTxn = nwindConn.BeginTransaction();  
  12. try  
  13. {  
  14. SqlCommand cmd = new SqlCommand("UPDATE Products SET"  
  15. +"QuantityPerUnit = 'single item' WHERE ProductID = 3");  
  16. cmd.Connection = nwindConn;  
  17. cmd.Transaction = nwindTxn;  
  18. cmd.ExecuteNonQuery();  
  19. interop_db.Transaction = nwindTxn;  
  20. Product prod1 = interop_db.Products.First(p => p.ProductID == 4);  
  21. Product prod2 = interop_db.Products.First(p => p.ProductID == 5);  
  22. prod1.UnitsInStock -3;  
  23. prod2.UnitsInStock -5;//這有一個錯誤,不能為負數  
  24. interop_db.SubmitChanges();  
  25. nwindTxn.Commit();  
  26. }  
  27. catch (Exception e)  
  28. {  
  29. //如果有一個錯誤,所有的操作回滾  
  30. Console.WriteLine(e.Message);  
  31. }  
  32. nwindConn.Close(); 

語句描述:這個例子使用預先存在的 ADO.NET連接創建 Northwind 對象,然后與此對象共享一個 ADO.NET 事務。此事務既用于通過 ADO.NET連接執行 SQL 命令,又用于通過 Northwind 對象提交更改。當事務因違反 CHECK 約束而中止時,將回滾所有更改,包括通過 SqlCommand 做出的更改,以及通過Northwind 對象做出的更改。

【編輯推薦】

  1. LINQ to DataSet查詢詳解
  2. Linq實現XML轉換淺談
  3. Linq to SQL強類型DataContext
  4. Linq SelectMany學習經驗
  5. 使用LINQ進行數據轉換剖析
責任編輯:佚名 來源: 博客園
相關推薦

2009-12-23 09:55:23

ADO.NET數據源

2009-12-24 10:06:30

ADO.NET字符串

2010-01-04 10:48:30

ADO.NET特色

2009-12-31 16:09:22

ADO與ADO.NET

2009-12-21 15:58:19

ADO.NET集合

2009-12-21 10:37:05

Ado.Net 實例

2009-12-21 14:04:48

ADO.NET參數

2009-12-25 14:23:35

ADO.NET設置

2009-12-30 16:05:20

ADO.NET實例

2009-11-11 10:27:22

ADO.NET入門

2009-12-22 15:20:25

ADO.NET功能

2009-12-22 11:17:58

ADO.NET產品

2009-11-12 11:38:03

ADO.NET連接事件

2009-12-25 10:25:59

2009-11-12 10:45:45

ADO.NET連接測試

2009-12-21 17:02:19

ADO.NET Sql

2009-12-30 16:22:58

ADO.NET連接池

2009-11-12 10:53:57

ADO.NET連接My

2009-12-30 10:32:04

擴展ADO.NET

2009-12-21 14:39:09

ADO.NET技巧
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品人成在线播放 | 久久在线免费 | 精品欧美黑人一区二区三区 | 天天操夜夜看 | 久久久久久色 | 台湾av在线 | 99久久婷婷国产综合精品电影 | 久久精品国产久精国产 | 国产精品1区2区 | 中文字幕av一区 | 亚洲日本国产 | 日韩一二区 | 久久久久久久av | 黄色一级视频免费 | 97色免费视频 | 国产精品福利在线观看 | 日本一区二区三区四区 | 午夜寂寞影院在线观看 | 在线一区观看 | 在线观看国产视频 | 九九热免费在线观看 | 日韩在线电影 | 国产精品美女久久久 | 亚洲欧美一区二区三区视频 | 国产9999精品| 亚洲免费精品 | 2018天天干天天操 | 亚洲国产精品一区二区久久 | 99re在线视频免费观看 | 嫩草视频在线免费观看 | 国产成人福利视频在线观看 | 久久手机视频 | 中文字幕在线观看精品 | 国产亚洲精品精品国产亚洲综合 | 国产成人自拍一区 | 91视频在线 | 一区二区三区精品在线视频 | 亚洲黄色一级 | 99精品热视频| 国产高清久久 | 国产精品一区一区三区 |