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

C# Berkeley DB數據庫

開發 后端
本文介紹C# Berkeley DB數據庫,Berkeley DB是歷史悠久的嵌入式數據庫系統,主要應用在UNIX/LINUX操作系統上。

Berkeley DB是歷史悠久的嵌入式數據庫系統,主要應用在UNIX/LINUX操作系統上。Berkeley DB的存儲的是key/value鍵值對,可以理解為硬盤上的超級hash表。其可以管理256TB數據,而且能支撐幾千個并發訪問。目前Berkeley DB有C++版和Java版。所以,我們需要一個訪問的中間轉換,已經有人發布了C#的API。可以從 Berkeley DB for .NET 上面找到,現在***版是0.95版本,可以支持4.3和4.5版。本篇將以4.5版做實例。

下載到Berkeley DB for .Net的 API——libdb-dotnet_0_95.zip后,就可以開始使用了。首先在libdb-dotnet_0_95.zip解壓縮的bin目錄找到 libdb_dotNET45.dll,這個就是4.5版本使用的dll。新建項目,引用這個dll。注意,自己編譯源碼可能會編譯不過,主要是因為里面一些委托和委托的參數可見性不一致造成的。把那些參數用到的class 或者struct都調成public即可。

C# Berkeley DB數據庫操作需要借助DbBTree類。因此需要先得到DbBTree的實例,但是DbBTree類會對其它幾個類有依賴,必須依賴其它幾個類才能創建。

下面代碼就是初始化得到DbBTree實例的一個過程。

  1. /// <summary> 
  2. /// 數據庫目錄  
  3. /// </summary> 
  4. private string directory;  
  5. /// <summary> 
  6. /// 數據庫文件名  
  7. /// </summary> 
  8. private string dbName;  
  9.  
  10. private DbBTree btree;  
  11. private Txn txn;  
  12. private Db db;  
  13. private Env env;  
  14. /// <summary> 
  15. /// 初始化  
  16. /// </summary> 
  17. private void Init(){  
  18. env = new Env(EnvCreateFlags.None);  
  19. Env.OpenFlags envFlags =  
  20. Env.OpenFlags.Create |  
  21. Env.OpenFlags.InitLock |  
  22. Env.OpenFlags.InitLog |  
  23. Env.OpenFlags.InitMPool |  
  24. Env.OpenFlags.InitTxn |  
  25. Env.OpenFlags.Recover;  
  26. env.Open(directory, envFlags, 0);  
  27. txn = env.TxnBegin(null, Txn.BeginFlags.None);  
  28. db = env.CreateDatabase(DbCreateFlags.None);  
  29. btree = (DbBTree)db.Open(txn, dbName, null, DbType.BTree, Db.OpenFlags.Create, 0);  

另外C# Berkeley DB數據庫的操作需要借助于序列化。

  1. ///<summary> 
  2. ///二進制序列化  
  3. ///</summary> 
  4. privateBinaryFormatterformatter;  
  5. ///<summary> 
  6. ///鍵內存流  
  7. ///</summary> 
  8. privateMemoryStreamkeyStream;  
  9. ///<summary> 
  10. ///內容內存流  
  11. ///</summary> 
  12. privateMemoryStreamdataStream;  
  13.  
  14. privatevoidStreamInit()  
  15. {  
  16. formatter=newBinaryFormatter();  
  17. keyStream=newMemoryStream();  
  18. dataStream=newMemoryStream();  

鍵值C# Berkeley DB數據庫,因此定義一個獲取鍵接口:

  1. publicinterfaceIPut  
  2. {  
  3. stringKey{get;}  

【編輯推薦】

  1. C#數據庫查詢和操作大全
  2. 淺析C#擴展方法
  3. C# Singleton的使用及優缺點探討
  4. 詳細分析C#數據庫連接池
  5. C#數據庫備份及還原的實現代碼
責任編輯:佚名 來源: IT168
相關推薦

2011-03-25 13:27:12

Berkeley DB

2009-08-07 15:26:38

C#數據庫編程實例

2024-04-18 09:56:16

2009-03-19 10:08:09

C#數據庫查詢

2010-10-26 15:21:11

連接Oracle數據庫

2011-03-03 09:45:25

DB2數據庫Visual C#

2009-08-07 16:19:00

C#下數據庫編程

2009-08-25 12:50:32

數據庫常用C#代碼

2009-08-12 14:27:36

訪問MySQL數據庫C# ODBC

2009-08-24 18:09:13

C#調用Oracle數

2009-09-04 17:23:21

C#數據庫連接對象

2009-08-17 17:42:57

C#數據庫操作類

2009-08-07 16:19:00

C#下數據庫編程

2009-07-31 17:01:21

C#存取Access數

2009-08-06 18:10:06

C#數據庫事務

2009-08-25 14:05:06

C#連接數據庫代碼

2009-09-04 17:53:23

C#增加數據庫數據

2009-08-25 15:50:13

C#連接遠程數據庫

2009-08-25 16:36:16

C#進行數據庫編程

2009-09-01 09:45:49

Visual C#對數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩久草 | 九九九视频在线观看 | 在线观看视频一区二区三区 | 欧美日韩成人网 | 久久精品国产清自在天天线 | 青青草免费在线视频 | 国产线视频精品免费观看视频 | 97免费视频在线观看 | 午夜丰满寂寞少妇精品 | 亚洲啪啪 | 国产欧美精品一区二区 | 日韩成年人视频在线 | 在线视频一区二区三区 | caoporn免费在线视频 | 久久99久久98精品免观看软件 | 91在线视频播放 | 日韩高清在线观看 | av一区二区三区 | 亚洲国产精品网站 | 成人av网页 | 中文字幕在线播放第一页 | 国产欧美一区二区在线观看 | 免费激情 | 激情国产| 国产视频福利一区 | 免费观看一级特黄欧美大片 | 国产高清在线 | 综合久久综合久久 | 久久久久久久久国产 | 精品一二| www天天操 | 欧美日韩中文字幕在线 | 超碰在线影院 | 天天操,夜夜爽 | 日韩色综合| 精品国产乱码久久久久久蜜退臀 | 毛片综合 | 日本不卡一区二区三区在线观看 | 精品视频在线一区 | 日韩欧美三区 | 人人射人人 |