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

C#工廠模式的實現

開發 后端
本文介紹用swith case語句來實現不同的創建connection ,command 和adapater的方法,然后說是C#工廠模式的實現。

上午看到一個兄弟的文章,很辛苦的想實現不改代碼只改配置來訪問不同類型的數據庫,自己去實現C#工廠模式。精神可嘉,但是殊不知C#已經自己為不同類型數據庫的訪問做了一個工廠。在這里我就把使用工廠的例子貼出來供不知道的兄弟參考一下,高手們可以忽略了。

首先是配置文件:其中的providerName就是指定的不同數據庫類型

  1. <connectionStrings> 
  2. <addnameaddname="..."connectionString="..."providerName="System.Data.OleDb"/> 
  3.  
  4. <addnameaddname="..."connectionString="..."providerName="System.Data.SqlClient"/> 
  5. </connectionStrings> 

下面看一下使用工廠的這個類:

  1. classDataBaseFac  
  2. {  
  3. privateDbConnectioncnn;//抽象類型  
  4. privateDbCommandcmd;//抽象類型  
  5. privateDbProviderFactoryprovider;  
  6. publicDataBaseFac()  
  7. {  
  8.  
  9. //從配置文件中取出標示數據庫類型的字符串  
  10. stringproviderName=ConfigurationManager.ConnectionStrings[1].ProviderName;  
  11.  
  12. //根據上一部的結果工廠創建一個對應的實例  
  13. provider=DbProviderFactories.GetFactory(providerName);  
  14.  
  15. //使用該實例就可以創建對應的connection,command和adapater對象了  
  16.  
  17. //調試的時候可以看到這幾個對象都變成了相應于數據庫類型的  
  18. cnn=provider.CreateConnection();  
  19. cnn.ConnectionString=ConfigurationManager.ConnectionStrings[1].ConnectionString;  
  20. cmd=provider.CreateCommand();  
  21. cmd.Connection=cnn;  
  22. }  
  23.  
  24. //執行一次查詢,返回數據表  
  25.  
  26. publicDataTableExcuteQuery(stringqueryString)  
  27. {  
  28. DataTableresult=newDataTable();  
  29. DbDataAdapteradapter=provider.CreateDataAdapter();  
  30. cmd.CommandType=CommandType.Text;  
  31. cmd.CommandText=queryString;  
  32. adapter.SelectCommand=cmd;  
  33. try  
  34. {  
  35. cnn.Open();  
  36. adapter.Fill(result);  
  37. }  
  38. catch  
  39. {  
  40. result=null;  
  41. }  
  42. finally  
  43. {  
  44. cnn.Close();  
  45. }  
  46. returnresult;  
  47.  

以上只是簡單的應用,并沒有做比較高級的封裝,只供不知道的兄弟參考。

順便說說,上午看到那個兄弟的文章用swith case語句來實現不同的創建connection ,command 和adapater的方法,然后說是C#工廠模式的實現。其實這是完全錯誤的,C#工廠模式的提出就是為了避免這么多swith case造成的麻煩。以后有時間我會把幾個常用的模式的提出原因和應用場合總結一下用C#做幾個例子給不清楚的兄弟貼出來的。

【編輯推薦】

  1. C#抽象類-特殊的類
  2. 介紹C#直接插入排序
  3. C#數據結構的排序算法
  4. 全面介紹C#指針操作
  5. 概述C#中的Assembly
責任編輯:佚名 來源: IT168
相關推薦

2024-07-22 14:34:20

簡單工廠模式C#

2009-08-25 18:04:30

C#實現Singlet

2024-03-06 13:19:19

工廠模式Python函數

2011-03-29 09:14:49

Dispose模式C#

2021-03-06 22:50:58

設計模式抽象

2011-03-17 15:59:37

c#數據庫

2009-09-16 09:06:16

Specificati

2009-08-26 10:24:04

C# Observer

2009-08-31 16:12:02

C#使用Singlet

2011-11-17 16:03:05

Java工廠模式Clojure

2024-11-06 11:38:59

C#單例模式

2009-09-01 18:29:10

C#繼承C#多態

2009-08-26 09:54:45

C#打印預覽C#打印

2009-08-03 16:35:30

C#日期比較

2009-04-29 09:06:18

C#設計模式Adapter

2024-07-22 08:09:28

C#模式架構

2009-09-07 04:59:12

C#模式窗體

2009-08-24 16:11:35

C#項目開發

2009-09-07 09:53:01

C# DisposeDispose方法

2009-08-26 16:26:37

C#迭代器模式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美视频一区二区三区 | 日日骚av | 国产免费av网 | 欧美国产亚洲一区二区 | 成人免费视频网站在线观看 | 不卡一区 | 男人天堂久久 | 中文字幕精品一区二区三区精品 | 国产精品无码久久久久 | 精品一区二区三区av | 亚洲 欧美 另类 综合 偷拍 | 日本三级做a全过程在线观看 | 久久久久久久国产精品 | 超碰伊人 | a黄视频| 久久免费高清视频 | 免费污视频 | 久久久久一区二区三区 | 一二三区av | 欧美激情精品久久久久久 | 免费成人高清在线视频 | 国产99久久久国产精品下药 | 国产精品毛片一区二区三区 | 欧美一区二区三区 | 久久久久九九九女人毛片 | 成年人视频在线免费观看 | 天天看夜夜| 成人一区二区视频 | 亚洲精品久久久久中文字幕欢迎你 | 欧美色综合一区二区三区 | 99热都是精品 | 国产精品成人69xxx免费视频 | 成人午夜免费视频 | 精品综合视频 | 亚洲福利 | 成人在线观看免费视频 | 国产成人亚洲精品 | 久久99精品久久 | 日韩精品在线观看一区二区三区 | 久久久久久国产精品三区 | 美日韩免费 |