偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C#工廠模式的實現(xiàn)

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

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

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

  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. //從配置文件中取出標示數(shù)據(jù)庫類型的字符串  
  10. stringproviderName=ConfigurationManager.ConnectionStrings[1].ProviderName;  
  11.  
  12. //根據(jù)上一部的結(jié)果工廠創(chuàng)建一個對應的實例  
  13. provider=DbProviderFactories.GetFactory(providerName);  
  14.  
  15. //使用該實例就可以創(chuàng)建對應的connection,command和adapater對象了  
  16.  
  17. //調(diào)試的時候可以看到這幾個對象都變成了相應于數(shù)據(jù)庫類型的  
  18. cnn=provider.CreateConnection();  
  19. cnn.ConnectionString=ConfigurationManager.ConnectionStrings[1].ConnectionString;  
  20. cmd=provider.CreateCommand();  
  21. cmd.Connection=cnn;  
  22. }  
  23.  
  24. //執(zhí)行一次查詢,返回數(shù)據(jù)表  
  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語句來實現(xiàn)不同的創(chuàng)建connection ,command 和adapater的方法,然后說是C#工廠模式的實現(xiàn)。其實這是完全錯誤的,C#工廠模式的提出就是為了避免這么多swith case造成的麻煩。以后有時間我會把幾個常用的模式的提出原因和應用場合總結(jié)一下用C#做幾個例子給不清楚的兄弟貼出來的。

【編輯推薦】

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

2024-07-22 14:34:20

簡單工廠模式C#

2009-08-25 18:04:30

C#實現(xiàn)Singlet

2024-03-06 13:19:19

工廠模式Python函數(shù)

2011-03-29 09:14:49

Dispose模式C#

2021-03-06 22:50:58

設(shè)計模式抽象

2011-03-17 15:59:37

c#數(shù)據(jù)庫

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#單例模式

2025-06-30 04:23:00

2009-09-01 18:29:10

C#繼承C#多態(tài)

2009-08-26 09:54:45

C#打印預覽C#打印

2009-08-03 16:35:30

C#日期比較

2009-04-29 09:06:18

C#設(shè)計模式Adapter

2024-07-22 08:09:28

C#模式架構(gòu)

2009-09-07 04:59:12

C#模式窗體

2009-08-24 16:11:35

C#項目開發(fā)

2009-09-07 09:53:01

C# DisposeDispose方法
點贊
收藏

51CTO技術(shù)棧公眾號