自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

c#中的數(shù)據(jù)庫(kù)訪問(wèn)工廠

運(yùn)維 數(shù)據(jù)庫(kù)運(yùn)維
c#中的數(shù)據(jù)庫(kù)訪問(wèn)工廠是怎么回事?其又是怎么實(shí)現(xiàn)的?下文中大家就能找到答案。希望大家能從中收獲知識(shí)。

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

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

  <connectionStrings>
    <add name="..." connectionString=" ..." providerName="System.Data.OleDb" />
  
    <add name="..." connectionString=" ..." providerName="System.Data.SqlClient" />
  </connectionStrings>
  下面看一下使用工廠的這個(gè)類:

   class DataBaseFac
  {
    private DbConnection cnn;//抽象類型
    private DbCommand cmd;//抽象類型
    private DbProviderFactory provider;
    public DataBaseFac()
    {
  
      //從配置文件中取出標(biāo)示數(shù)據(jù)庫(kù)類型的字符串
      string providerName = ConfigurationManager.ConnectionStrings[1].ProviderName;
  
      //根據(jù)上一部的結(jié)果工廠創(chuàng)建一個(gè)對(duì)應(yīng)的實(shí)例
      provider = DbProviderFactories.GetFactory(providerName);
  
      //使用該實(shí)例就可以創(chuàng)建對(duì)應(yīng)的connection,command和adapater對(duì)象了
  
      //調(diào)試的時(shí)候可以看到這幾個(gè)對(duì)象都變成了相應(yīng)于數(shù)據(jù)庫(kù)類型的
      cnn = provider.CreateConnection();
      cnn.ConnectionString = ConfigurationManager.ConnectionStrings[1].ConnectionString;
      cmd = provider.CreateCommand();
      cmd.Connection = cnn;
    }
  
    //執(zhí)行一次查詢,返回?cái)?shù)據(jù)表
  
    public DataTable ExcuteQuery(string queryString)
    {
      DataTable result = new DataTable();
      DbDataAdapter adapter = provider.CreateDataAdapter();
      cmd.CommandType = CommandType.Text;
      cmd.CommandText = queryString;
      adapter.SelectCommand = cmd;
      try
      {
        cnn.Open();
        adapter.Fill(result);
      }
      catch
      {
        result = null;
      }
      finally
      {
        cnn.Close();
      }
      return result;
  
    }

  以上只是簡(jiǎn)單的應(yīng)用,并沒(méi)有做比較高級(jí)的封裝,只供不太了解的兄弟們參考。

總結(jié):順便說(shuō)說(shuō),用swith case語(yǔ)句來(lái)實(shí)現(xiàn)不同的創(chuàng)建connection ,command 和adapater的方法,然后說(shuō)是工廠方法的實(shí)現(xiàn)。其實(shí)這是完全錯(cuò)誤的,工廠模式的提出就是為了避免這么多swith case造成的麻煩。這次就為大家簡(jiǎn)單介紹到這,以后有時(shí)間我會(huì)把幾個(gè)常用的模式的提出原因和應(yīng)用場(chǎng)合總結(jié)一下用C#做幾個(gè)例子給大家做一個(gè)詳細(xì)的介紹,供大家學(xué)習(xí)參考。

【編輯推薦】

  1. 數(shù)據(jù)庫(kù)安全防護(hù)幾點(diǎn)介紹
  2. 如何減少數(shù)據(jù)庫(kù)管理開(kāi)銷 發(fā)揮最大功能
  3. 帶迷茫的你走出學(xué)習(xí)數(shù)據(jù)庫(kù)的囧途
責(zé)任編輯:迎迎 來(lái)源: 希賽網(wǎng)
相關(guān)推薦

2009-08-12 14:27:36

訪問(wèn)MySQL數(shù)據(jù)庫(kù)C# ODBC

2009-08-28 15:16:32

C#實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)訪問(wèn)

2024-09-20 18:02:42

C#數(shù)據(jù)庫(kù)SQLite

2009-08-11 13:35:13

C# Berkeley

2024-04-18 09:56:16

2009-08-11 14:51:47

C#讀取Excel中數(shù)

2009-08-07 15:33:11

C#數(shù)據(jù)庫(kù)編程

2009-03-19 10:08:09

C#數(shù)據(jù)庫(kù)查詢

2009-08-12 14:23:01

C#連接MySql數(shù)據(jù)

2024-07-22 14:34:20

簡(jiǎn)單工廠模式C#

2009-08-04 09:22:26

C#工廠模式

2010-10-26 15:21:11

連接Oracle數(shù)據(jù)庫(kù)

2009-08-25 12:50:32

數(shù)據(jù)庫(kù)常用C#代碼

2009-08-07 16:19:00

C#下數(shù)據(jù)庫(kù)編程

2009-08-24 18:09:13

C#調(diào)用Oracle數(shù)

2009-08-17 17:42:57

C#數(shù)據(jù)庫(kù)操作類

2009-08-06 18:10:06

C#數(shù)據(jù)庫(kù)事務(wù)

2009-09-04 17:23:21

C#數(shù)據(jù)庫(kù)連接對(duì)象

2009-08-25 14:05:06

C#連接數(shù)據(jù)庫(kù)代碼

2009-07-31 17:01:21

C#存取Access數(shù)
點(diǎn)贊
收藏

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