日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

第一次接触 SharpHsql(纯C#开源数据库引擎)

發(fā)布時(shí)間:2025/5/22 C# 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第一次接触 SharpHsql(纯C#开源数据库引擎) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?????
????????? 在 開源中的靈感之源 的blog上看到這篇文章?開源純C#輕量級(jí)數(shù)據(jù)庫引擎:SharpHSQL 1.0.3.0版本 這篇文章,著實(shí)幸福了一陣。
????? 類似的數(shù)據(jù)庫引擎我用過不少,比如 sqlite 、MINOSSE?等。sqlite是純c在web應(yīng)用中不方便,minnosse就根本沒有辦法正常運(yùn)行。
????? 我尋找 這樣的數(shù)據(jù)庫引擎 最主要的原因是 想在web項(xiàng)目中替代ACCESS,減少網(wǎng)站建設(shè)費(fèi)用和提高網(wǎng)站性能。
????? 首先我將SharpHsql 跟SQL Server 2000 進(jìn)行比較 其中創(chuàng)建表和刪除表的數(shù)據(jù) Hsql領(lǐng)先。修改、查詢數(shù)據(jù)速度基本上持平,查詢時(shí)SharpHsql要慢一點(diǎn)(很小的一點(diǎn)),SharpHsql的查詢同樣使用了緩存技術(shù)。
???? 插入數(shù)據(jù)的時(shí)候隨表中數(shù)據(jù)增加而速度越慢,在1萬行數(shù)據(jù)時(shí)時(shí)間增加減緩,這個(gè)速度大大慢于SQL server;
???? 我以前做測(cè)試access 的數(shù)據(jù)基本上是 SQL server 的1/10,所以SharpHsql的速度相對(duì)于Access還是很有優(yōu)勢(shì)的,綜合比較基本是ACCESS 六倍以上的性能。
???

???? SharpHsql 的數(shù)據(jù)庫一共是?4 個(gè)文件 ?*.data 、*.cfg 、*.log 、 *.backup ;看后綴大家就知道干什么的,我就不多說了

???? 我們來看看他支持的功能,我這里摘錄一段代碼,大家看了代碼就明白??????
???

????switch(sToken)
????????????????????
{
????????????????????????
case?"SELECT":
?????????????????????????????rResult?
=?p.ProcessSelect();
????????????????????????????
break;
????????????????????????
case?"INSERT":
????????????????????????????rResult?
=?p.ProcessInsert();
????????????????????????????
break;
????????????????????????
case?"UPDATE":
????????????????????????????rResult?
=?p.ProcessUpdate();
????????????????????????????
break;
????????????????????????
case?"DELETE":
????????????????????????????rResult?
=?p.ProcessDelete();
????????????????????????????
break;
????????????????????????
case?"ALTER":
????????????????????????????rResult
=p.ProcessAlter();
????????????????????????????
break;
????????????????????????
case?"CREATE":
????????????????????????????rResult?
=?ProcessCreate(c,?channel);
????????????????????????????script?
=?true;
????????????????????????????
break;
????????????????????????
case?"DROP":
????????????????????????????rResult?
=?ProcessDrop(c,?channel);
????????????????????????????script?
=?true;
????????????????????????????
break;
????????????????????????
case?"GRANT":
????????????????????????????rResult?
=?ProcessGrantOrRevoke(c,?channel,?true);
????????????????????????????script?
=?true;
????????????????????????????
break;
????????????????????????
case?"REVOKE":
????????????????????????????rResult?
=?ProcessGrantOrRevoke(c,?channel,?false);
????????????????????????????script?
=?true;
????????????????????????????
break;
????????????????????????
case?"CONNECT":
????????????????????????????rResult?
=?ProcessConnect(c,?channel);
????????????????????????????
break;
????????????????????????
case?"DISCONNECT":
????????????????????????????rResult?
=?ProcessDisconnect(c,?channel);
????????????????????????????
break;
????????????????????????
case?"SET":
????????????????????????????rResult?
=?ProcessSet(c,?channel);
????????????????????????????script?
=?true;
????????????????????????????
break;
????????????????????????
case?"SCRIPT":
????????????????????????????rResult?
=?ProcessScript(c,?channel);
????????????????????????????
break;
????????????????????????
case?"COMMIT":
????????????????????????????rResult?
=?ProcessCommit(c,?channel);
????????????????????????????script?
=?true;
????????????????????????????
break;
????????????????????????
case?"ROLLBACK":
????????????????????????????rResult?
=?ProcessRollback(c,?channel);
????????????????????????????script?
=?true;
????????????????????????????
break;
????????????????????????
case?"SHUTDOWN":
????????????????????????????rResult?
=?ProcessShutdown(c,?channel);
????????????????????????????
break;
????????????????????????
case?"CHECKPOINT":
????????????????????????????rResult?
=?ProcessCheckpoint(channel);
????????????????????????????
break;
????????????????????????
case?"CALL":
????????????????????????????rResult?
=?p.ProcessCall();
????????????????????????????
break;
????????????????????????
case?"SHOW":
????????????????????????????rResult?
=?ProcessShow(c,channel);
????????????????????????????
break;
????????????????????????
case?"DECLARE":
????????????????????????????rResult?
=?p.ProcessDeclare();
????????????????????????????script?
=?true;
????????????????????????????
break;
????????????????????????
case?";":
????????????????????????????
continue;
????????????????????????
default:
????????????????????????????
throw?Trace.Error(Trace.UnexpectedToken,?sToken);
????????????????????}



???? 然后在DataReader的時(shí)候 他的 DataReader沒有實(shí)現(xiàn)索引器,只能用 DataReader[? Columnname ] 的方式 和DataReader.GetInt32(0) 這樣的方式實(shí)現(xiàn)。需要注意的是? DataReader[? Columnname ]? 中的 列名稱需使用大寫,在系統(tǒng)里面名稱這些全部是SharpHsql全部是大寫處理的;
??? DataReader[? Columnname ] 這種方式是使用 HashTable 實(shí)現(xiàn),DataReader.GetInt32(0) 是使用 object[]實(shí)現(xiàn)。
?
? 在使用SharpHsqlDataAdapter 的時(shí)候,會(huì)發(fā)現(xiàn) 非SharpHsqlDataAdapter?.Fill(dataset)這樣的形式會(huì)報(bào)錯(cuò),比如SharpHsqlDataAdapter?.Fill(dataset,tablename?);這個(gè)問題好辦只要?jiǎng)h除? SharpHsqlDataAdapter.cs中的Fill方法就可以了,實(shí)際上他不需要重寫。

????public?override?int?Fill(DataSet?dataSet)
????????
{
????????????
return?base.Fill(?dataSet?);
????????}


?? 我發(fā)現(xiàn)的問題暫時(shí)就這些,我已經(jīng)喜歡上它了。

?? 對(duì)了,他的log4net系統(tǒng)實(shí)在占用空間,我把它去除了!

總的來說數(shù)據(jù)庫引擎還是比較完善,只是 驅(qū)動(dòng)寫的比較馬虎 ,還有就是 數(shù)據(jù)對(duì)象名稱 這些不應(yīng)該全部換成大寫。

?

?

?程序猿們,我也跟風(fēng)開了網(wǎng)店,主要經(jīng)營土特產(chǎn),云南核桃,四川正宗土雞蛋。有需要的就支持一下小店哈 ?七彩山川美食(http://qcsc.taobao.com)?

?

轉(zhuǎn)載于:https://www.cnblogs.com/leiyu1980/archive/2005/08/10/211504.html

總結(jié)

以上是生活随笔為你收集整理的第一次接触 SharpHsql(纯C#开源数据库引擎)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线视频一区二区三区 | www.av网址| 91视频国产精品 | 成人免费视频软件网站 | 欧美日韩a√ | 性插免费视频 | 色婷婷激情 | 夜夜夜夜夜操 | 午夜国产在线 | 亲子乱对白乱都乱了 | 国产裸体永久免费无遮挡 | 久久99热久久99精品 | 自宅警备员在线观看 | 国产91专区| 国产又粗又猛又黄又爽无遮挡 | 黑人巨大精品欧美一区二区免费 | 伊人影院中文字幕 | 99视频只有精品 | 成人综合婷婷国产精品久久 | 欧美少妇一区二区 | 穿扒开跪着折磨屁股视频 | 美女视频91| 国产欧美在线观看 | 青青在线视频观看 | 亚洲男同视频 | 中文在线字幕免费观看电 | 无码精品在线视频 | 欧美日韩视频在线 | 国产黄色大片免费看 | 天天干人人 | 日吊视频 | 一道本在线播放 | 亚洲午夜一区二区 | 精品一区二区av | 亚洲精品天堂在线 | 欧美日韩成人一区二区三区 | 国产高清一区在线观看 | 久久av免费观看 | 国产福利资源在线 | 精久久| 欧美日韩中文在线 | 狠狠操狠狠爱 | 国产精品视频一区在线观看 | 久久久久久av无码免费网站下载 | 一个人看的www片免费高清中文 | 国产婷婷在线视频 | 国产成人精品午夜福利Av免费 | 国产swag在线观看 | 亚洲av综合色区 | 99久久精品免费视频 | www,色| 亚洲伦理在线播放 | 九七电影院97理论片 | 欧洲亚洲一区二区 | 日本少妇全体裸体洗澡 | 亚洲大片免费观看 | 小视频在线免费观看 | 日韩视频免费观看高清完整版 | 国产3级| 国产精品国产三级国产aⅴ无密码 | 久久免费手机视频 | 免费视频久久 | 肉色欧美久久久久久久免费看 | 撕开少妇裙子猛然进入 | av网站免费在线播放 | h部分肌肉警猛淫文 | 黑人黄色一级片 | 五月色婷婷综合 | 熟女少妇在线视频播放 | 香蕉视频污在线观看 | 午夜男人天堂 | 日韩大片av | 日韩黄色在线 | 欧美变态口味重另类在线视频 | 国产美女永久无遮挡 | 国产欧美激情 | 波多野结衣一区二区三区中文字幕 | 中文字幕一区二区人妻痴汉电车 | 国产精品一级二级三级 | 国产123区在线观看 91国产一区二区 | 亚洲精品天堂网 | 日操操 | 综合av第一页 | 99re只有精品| 欧美 日韩 中文字幕 | 日韩精品中文字幕一区二区 | 国产精品久久久久久久av福利 | 一本久道综合色婷婷五月 | 天天摸天天操天天干 | 国产精品.xx视频.xxtv | 亚洲卡一 | 四虎永久在线精品免费一区二区 | 亚洲精品乱码久久久久久蜜桃不卡 | 国产女上位 | 午夜寂寞剧场 | 日韩精品极品视频免费观看 | 国产欧美一区二区三区在线看蜜臂 | 成人深夜免费视频 | 特级a毛片 |