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

c#中的數據庫訪問工廠

運維 數據庫運維
c#中的數據庫訪問工廠是怎么回事?其又是怎么實現的?下文中大家就能找到答案。希望大家能從中收獲知識。

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

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

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

   class DataBaseFac
  {
    private DbConnection cnn;//抽象類型
    private DbCommand cmd;//抽象類型
    private DbProviderFactory provider;
    public DataBaseFac()
    {
  
      //從配置文件中取出標示數據庫類型的字符串
      string providerName = ConfigurationManager.ConnectionStrings[1].ProviderName;
  
      //根據上一部的結果工廠創建一個對應的實例
      provider = DbProviderFactories.GetFactory(providerName);
  
      //使用該實例就可以創建對應的connection,command和adapater對象了
  
      //調試的時候可以看到這幾個對象都變成了相應于數據庫類型的
      cnn = provider.CreateConnection();
      cnn.ConnectionString = ConfigurationManager.ConnectionStrings[1].ConnectionString;
      cmd = provider.CreateCommand();
      cmd.Connection = cnn;
    }
  
    //執行一次查詢,返回數據表
  
    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;
  
    }

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

總結:順便說說,用swith case語句來實現不同的創建connection ,command 和adapater的方法,然后說是工廠方法的實現。其實這是完全錯誤的,工廠模式的提出就是為了避免這么多swith case造成的麻煩。這次就為大家簡單介紹到這,以后有時間我會把幾個常用的模式的提出原因和應用場合總結一下用C#做幾個例子給大家做一個詳細的介紹,供大家學習參考。

【編輯推薦】

  1. 數據庫安全防護幾點介紹
  2. 如何減少數據庫管理開銷 發揮最大功能
  3. 帶迷茫的你走出學習數據庫的囧途
責任編輯:迎迎 來源: 希賽網
相關推薦

2009-08-12 14:27:36

訪問MySQL數據庫C# ODBC

2009-08-28 15:16:32

C#實現對數據庫訪問

2024-09-20 18:02:42

C#數據庫SQLite

2009-08-11 13:35:13

C# Berkeley

2024-04-18 09:56:16

2009-08-11 14:51:47

C#讀取Excel中數

2009-08-07 15:33:11

C#數據庫編程

2009-03-19 10:08:09

C#數據庫查詢

2009-08-12 14:23:01

C#連接MySql數據

2024-07-22 14:34:20

簡單工廠模式C#

2009-08-04 09:22:26

C#工廠模式

2010-10-26 15:21:11

連接Oracle數據庫

2009-08-25 12:50:32

數據庫常用C#代碼

2009-08-07 16:19:00

C#下數據庫編程

2009-08-24 18:09:13

C#調用Oracle數

2009-09-04 17:23:21

C#數據庫連接對象

2009-08-07 16:19:00

C#下數據庫編程

2009-08-06 18:10:06

C#數據庫事務

2009-08-25 14:05:06

C#連接數據庫代碼

2009-07-31 17:01:21

C#存取Access數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲高清一区二区三区 | 超碰在线免费公开 | 波波电影院一区二区三区 | 久久婷婷色 | 亚洲欧美中文日韩在线 | 国产精品18hdxxxⅹ在线 | 午夜精品一区二区三区在线观看 | 婷婷不卡 | 美女视频网站久久 | 亚洲成人一区二区三区 | 久久99精品久久久久久 | 成人午夜精品一区二区三区 | 九九热精品视频 | 欧美激情一区二区 | 日韩成人免费av | 中文字幕日韩专区 | 韩日精品一区 | 亚洲国产欧美一区 | 国产精品久久久久久高潮 | 99re在线观看 | 欧美日韩在线视频一区二区 | 欧美精品啪啪 | 羞羞视频免费观看 | 日韩精品一区二区三区老鸭窝 | 一区二区三区观看视频 | 97综合在线 | 91大神在线资源观看无广告 | 亚洲国产精品99久久久久久久久 | 羞羞的视频免费在线观看 | 看黄在线 | 欧美激情精品久久久久久变态 | 久久在线| 欧美二级 | av一区二区三区四区 | 亚洲精品一区二三区不卡 | 欧美日韩国产中文字幕 | 成人免费在线观看 | 久久综合狠狠综合久久综合88 | 国产精品一区网站 | 午夜精品一区二区三区在线观看 | 久久一级 |