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

新手必看篇之ADO.NET2.0數據庫

開發 后端
這里就ADO.NET2.0數據庫訪問工廠中有個DbProviderFactory對象,也就是通常說的DataProvider了,正是這個起了關鍵和方便的作用,是用來創建提供程序對數據源類的實現的實例(就是用來創建實例)。

ADO.NET2.0還是比較常用的,于是我研究了一下ADO.NET2.0數據庫,在這里拿出來和大家分享一下,希望對大家有用。下面開始我要說的利用ADO.NET2.0及以上版本新增的工廠式數據庫訪問實現應該系統的無縫切換,要實現無縫切換,當然還是要有前提條件了,就是各個不同的數據庫之間的表和其它對象都已經成功移植了,沒有這個前提,純用ADO.NET2.0中數據庫做系統無縫切換那是不可能的了,比如SQLSERVER中寫的存儲過程,自定義函數直接復制到ORACLE上就行了嗎?當然是不行,寫法及變量定義要做些調整才可以成功移植的,還有變結構字段類型等等的都可能是要做相應調整,這些都做好了才能談系統的無縫切換。

#T#要做的無縫切換,數據庫訪問層的代碼中最好(并非絕對)不應該出現SqlCommand,SqlDataAdapter,SqlClient,SqlXXX吧,要切換到ORACLE數據上ORACLE里可以OracleCommand,OracleXXX,還有程序執行帶參數語句時,UserName,UserAge,如果在ORACLE里這么命名的話,系統開發過程中的那種痛苦也許只有經歷過的人才知道,ORACLE堅持大寫為標準,記得很久很久以前的一個夏天的晚上,那時我還是年輕的80后,一位數據庫設計比較N的人提到過,盡量在數據庫設計和T-SQL編程中采用大寫標準,基本上接觸的SQLSERVER數據庫較多,也習慣了表名,字段名的大寫設計,后來發現確實是有道理的。

這里提到的問題都是在下面的各個方法中為了兼容不同的數據庫需要面對的問題,具體講到每個執行方法時再具體解釋。剛才說SqlCommand,OracleComand都是各自認得,但是DbCommand可是大家都認得的,暫且叫抽象對象吧,還有DbConnection,DbDataAdapter等都是他們都認得的,所以在做支持多數據庫訪問類庫時,就可以用這些對象了,根據這些對象再創建具體對象。ADO.NET2.0數據庫訪問工廠中有個DbProviderFactory對象,也就是通常說的DataProvider了,正是這個起了關鍵和方便的作用,是用來創建提供程序對數據源類的實現的實例(就是用來創建實例)。另外數據庫操作還要用到參數吧,DbParameter,DbParameterCollection下面都需要用到,先貼一段類庫的構造函數,因為共用對象需要先實例化。

  1. publicDbConnectionconn;//抽象類型  
  2. privateDbCommandcmd;//抽象類型  
  3. privateDbProviderFactoryprovider;  
  4.  
  5. privateDbParameterPara;//不同數據庫參數類型的抽象類型  
  6. privateDbDataAdapterAdapter;//對應不同數據庫的數據適配器  
  7.  
  8. Dictionary<Type,String>ParametersFormat;//不同數據庫參數格式化類型  
  9.  
  10. publicstringretParaformat=string.Empty;//最終返回的格式化標志,如@{0},:{0}  
  11. publicDataProviderFactory()  
  12. {  
  13.  
  14. //從配置文件中取出標示數據庫類型的字符串并通過ProviderName的不同支持不同類型的數據庫  
  15. stringproviderName=ConfigurationManager.ConnectionStrings["ConnStr"].ProviderName;//也可以用索引,從1開始  
  16.  
  17. //創建一個數據庫對應的實例,使用該實例就可以創建對應的connection,command和adapater等等對象  
  18. provider=DbProviderFactories.GetFactory(providerName);  
  19.  
  20. //創建具體的數據庫連接類型和命令執行類型  
  21. conn=provider.CreateConnection();  
  22. conn.ConnectionString=ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;  
  23. cmd=provider.CreateCommand();  
  24. cmd.Connection=conn;  
  25.  
  26. //創建具體的參數類型  
  27. Para=provider.CreateParameter();  
  28.  
  29. //創建具體的適配器類型  
  30. Adapter=provider.CreateDataAdapter();  
  31.  
  32. //不同數據庫參數前綴格式化  
  33. ParametersFormat=newDictionary<Type,String>();  
  34. ParametersFormat.Add(typeof(System.Data.SqlClient.SqlCommand),"@{0}");//因SQLSERVER只返回{0}沒有@前綴,在此初始化處理  
  35.  
  36. //返回格式化標志  
  37. retParaformat=GetParameterFormat(cmd);  


 

責任編輯:田樹 來源: 博客
相關推薦

2009-12-29 14:18:43

ADO.NET2.0

2009-11-13 15:25:51

ADO.NET的對象

2009-11-04 14:17:34

ADO.NET 2.0

2009-11-11 14:44:27

ADO.NET 2.0

2009-10-29 09:19:59

ADO.NET

2009-11-25 16:45:46

VS2005軟件

2009-09-14 19:58:47

DataSet和Dat

2011-10-09 13:38:14

數據庫

2009-10-28 13:17:34

2011-05-20 13:11:22

ADO.NET

2009-12-30 16:13:52

ADO.NET 2.0

2009-12-23 17:54:01

ADO.NET 2.0

2009-11-03 14:46:47

ADO.NET數據庫

2009-12-31 09:18:23

ADO.NET對象模型

2011-03-04 11:08:46

ADO.NET數據庫

2009-12-22 09:59:06

ADO.NET數據庫

2009-12-24 10:37:03

ADO.NET訪問數據

2009-12-23 15:53:36

ADO.NET訪問數據

2009-03-19 09:58:04

ADO.NET數據庫SQL操作

2009-12-30 15:55:20

ADO.NET數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品成av人在线视午夜片 | 亚洲天堂中文字幕 | 久久69精品久久久久久国产越南 | 午夜免费视频观看 | 成人午夜黄色 | 欧美午夜精品久久久久免费视 | 国产一级视频在线播放 | 欧美久久久久久久久 | 亚洲精品一区久久久久久 | 97精品国产手机 | 久久国产精品无码网站 | 第四色影音先锋 | 国产亚洲精品美女久久久久久久久久 | 国产 日韩 欧美 在线 | 精品久久久久香蕉网 | 中文字幕91av | 欧美九九九 | 久久精品视频在线播放 | 国产综合在线视频 | 91天堂网 | 一级少妇女片 | 国产精品夜夜春夜夜爽久久电影 | 黄色网址在线播放 | 91在线视频一区 | 欧美一区二区激情三区 | 一区二区精品 | 黄色片免费在线观看 | 久草电影网 | 欧美日韩三级在线观看 | 日本成人中文字幕 | 精品成人免费视频 | 欧美黄页 | 欧美日韩在线播放 | 日韩免费视频一区二区 | 毛片在线看片 | 国产成人精品久久 | 中文字幕不卡在线观看 | 国产精品美女久久久久久久网站 | 欧美亚洲国产日韩 | 亚洲在线一区 | 在线日韩视频 |