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

C# 泛型操作數(shù)據(jù)庫切換實踐

開發(fā) 后端
C# 泛型操作數(shù)據(jù)庫切換實踐向你講述了如何通過C# 泛型達到數(shù)據(jù)庫切換切換的目的,希望對你了解和學習C# 泛型有所幫助。

C# 泛型操作數(shù)據(jù)庫切換實踐的一個項目,最開始選用的是 MySql 5.0 數(shù)據(jù)庫,項目提交之后,對方要求換成 MS SQLServer 2000,還好數(shù)據(jù)層操作基本采用的是標準的SQL語句,也未使用存儲過程,于是將原有的數(shù)據(jù)接入層代碼改寫成泛型類,只改了不到一百行代碼,具體的SQL操作語句一句未動,便實現(xiàn)了數(shù)據(jù)庫之間的切換。下面簡述C#泛型操作數(shù)據(jù)庫切換實踐的具體過程:

數(shù)據(jù)庫不是很復雜,因此我采用了兩個類:

(1) DataProvider 泛型類

  1. public class DataProvider﹤ConnType, CmdType﹥  
  2. where ConnType : IDbConnection, new()  
  3. where CmdType : IDbCommand,new ()  
  4. {  
  5.  

提供數(shù)據(jù)庫表的Insert,Update,Select,Delete操作。因為 IDbCommand能夠由 IDbConnection 獲取,其實只需要有一個泛型參數(shù)ConnType 的,不過這樣以來,具體的代碼改動比較大,偶就采用了兩個泛型參數(shù)。

(2)ConnectionPool 泛型類

  1. public class ConnectionPool﹤T﹥  
  2. where T : IDbConnection,new ()  
  3. {  
  4.  

最開始沒在MySql 5.0 中找到對數(shù)據(jù)庫連接池的支持,于是自己寫了一個簡單的數(shù)據(jù)庫連接池。

C# 泛型操作數(shù)據(jù)庫切換的實現(xiàn):

下面,就是采用 C# 的NB語法――using:

(1)如果使用 MySql 數(shù)據(jù)庫:

  1. using DataProvider =   
  2.  
  3. DataProvider﹤MySql.Data.MySqlClient.MySqlConnection,   
  4.  
  5. MySql.Data.MySqlClient.MySqlCommand﹥; 

(2)如果使用 SQLServer 數(shù)據(jù)庫:

  1. using DataProvider =   
  2.  
  3. DataProvider﹤System.Data.SqlClient.SqlConnection,  
  4.  
  5.  System.Data.SqlClient.SqlCommand﹥; 

這樣一來,其它地方的代碼一句都不用動了。

懶惰是程序員的美德。我的一臺電腦上裝的是 SQLServer 2000數(shù)據(jù)庫,一臺電腦上裝的是 MySql數(shù)據(jù)庫,我經(jīng)常一會在這臺電腦上干活,一會在另外一臺電腦上干活,兩個電腦上的代碼應該一致啊。因此,采用預編譯指令:

  1. #if MSSQLSERVER  
  2. using System.Data.SqlClient;  
  3. using DataProvider = DataProvider﹤System.Data.SqlClient.SqlConnection, System.Data.SqlClient.SqlCommand﹥;  
  4. #elif MYSQL  
  5. using MySql.Data;  
  6. using DataProvider = DataProvider﹤MySql.Data.MySqlClient.MySqlConnection, MySql.Data.MySqlClient.MySqlCommand﹥;  
  7. #endif 

這樣在編譯時指定條件編譯符號 " MYSQL " 得到的就是MySql版本的代碼,指定條件編譯符號" MSSQLSERVER ",得到的就是 SQLServer 版本的代碼。

C# 泛型操作數(shù)據(jù)庫切換操作的總結:

(1)理論上來說,采用反射得到的解決方案更完美,不過那樣工期會更長。

(2)數(shù)據(jù)庫設計,偶采用的是免費軟件 Toad Data Modeler 免費版,里面提供了數(shù)據(jù)庫切換功能,切換過去,稍微改動改動。

(3)這次開發(fā)工具采用的全是開源軟件或者免費軟件,都是超級好用的東東,感覺開發(fā)速度并不比龐大的收費軟件慢。用到的工具如下:

IDE:VS 2005 Express (C++版,C#版,Web開發(fā)版),.Net的aspnet命令行編譯工具

版本管理:SVN,小烏龜SVN Client

Shell:Windows Power Shell(這玩意既然出來了,就要充分利用)

UML建模:StarUML(功能強大的開源UML,比偶以前用過的JUDE,ArgoUML強大很多,支持C#)

數(shù)據(jù)庫建模:Toad Data Modeler 免費版

數(shù)據(jù)庫管理工具:EMS SQL Manager 2005 lite for MySQL

C# 泛型操作數(shù)據(jù)庫切換實踐的基本內容就向你介紹到這里,希望對你了解和學習C# 泛型操作數(shù)據(jù)庫切換實踐有所幫助。

【編輯推薦】

  1. C# 泛型數(shù)組學習小結
  2. C# 泛型委托學習經(jīng)驗淺析
  3. 淺析運行庫中的C# 泛型
  4. C# 泛型方法中反射常用方法淺析
  5. C# 泛型應用中屬性淺析
責任編輯:仲衡 來源: 百度空間
相關推薦

2009-09-03 09:52:26

C# treeview

2009-09-15 09:50:07

Linq操作數(shù)據(jù)庫

2011-07-01 13:42:24

QT 數(shù)據(jù)庫

2020-11-16 08:56:02

Python

2011-07-05 10:27:06

MySQL數(shù)據(jù)庫檢索排序

2011-04-19 10:20:09

數(shù)據(jù)庫

2023-12-27 13:44:00

數(shù)據(jù)庫系統(tǒng)分布式

2023-04-27 09:36:43

2023-12-14 15:07:31

多線程數(shù)據(jù)庫代碼

2024-04-18 09:56:16

2021-07-28 14:40:57

鴻蒙HarmonyOS應用

2009-08-26 09:36:03

C#泛型

2009-07-07 09:24:37

LINQ檢索

2009-08-17 17:42:57

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

2016-05-11 10:09:49

數(shù)據(jù)層代碼FastQuery

2009-08-04 14:52:33

Visual Web ASP.NET

2023-06-15 15:21:43

2009-09-02 17:38:16

C#泛型支持

2009-08-24 15:12:13

C# 泛型接口

2009-08-24 18:15:24

C# Dictiona
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 97伦理最新伦理 | 欧美a v在线 | 美国黄色毛片 | 国产精品高潮呻吟久久久久 | 四虎成人精品永久免费av九九 | 日本一区二区三区四区 | 激情五月婷婷丁香 | 午夜免费视频 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 久久九九免费 | 亚州午夜精品 | 日本成人片在线观看 | 台湾a级理论片在线观看 | 日韩av一区二区在线观看 | 成年人视频在线免费观看 | 久久躁日日躁aaaaxxxx | 欧美男人天堂 | 中文字字幕一区二区三区四区五区 | 亚洲精选久久 | 欧美日韩国产在线 | 亚洲有码转帖 | 欧美精品一区在线 | 久久久久一区 | 亚洲欧美另类在线观看 | 午夜性视频 | 日韩中文字幕在线 | 日日噜噜夜夜爽爽狠狠 | 日韩成人在线观看 | 国产乱码高清区二区三区在线 | 成人免费视频 | 日韩精品一区二区三区中文在线 | 欧美一级在线 | 国产成人精品免高潮在线观看 | 青青草一区二区三区 | 亚洲天堂久久 | 国产精品69久久久久水密桃 | 伊人久操| 日韩1区| 亚洲精品一区二区三区四区高清 | 成人美女免费网站视频 | 久久精品免费看 |