Bitrac 程序内是直接引用了 System.Data.SQLite 这一命名空间,因为 ASP.NET 的特性,如果单独升级 SQLite 的库文件不重新编译程序那么程序运行时肯定无法找到所需要的程序集,因为版本号有了变化,而 Bitrac.Auto.dll 自动升级程序集也需要引用 SQLite 的库,但是我并不希望每次 SQLite 的库更新 Bitrac.Auto.dll 也要更新,那样会造成太多的不便,这时候就需要使用 ASP.NET 2.0 的一个新特性了,那就是 DbProviderFactories,Bitrac.Data.dll 依然使用旧的方法直接引用 SQLite 库。

首先在 web.config 文件里面增加:

  1. <system.data> 
  2.     <DbProviderFactories> 
  3.         <remove invariant="System.Data.SQLite"/> 
  4.         <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite"/> 
  5.     </DbProviderFactories> 
  6. </system.data> 

C# 使用以下代码就可以了:

  1. DbProviderFactory oFact = DbProviderFactories.GetFactory("System.Data.SQLite");  
  2.  
  3. using (DbConnection oConn = oFact.CreateConnection())  
  4. {  
  5.     oConn.ConnectionString = "数据库连接字符串";  
  6.     oConn.Open();  
  7.  
  8.     oConn.Close();  

其实 ASP.NET 程序支持多种数据库使用的也是这个方法。

此文章由 Loveyuki 于 2009-05-11 19:03 编辑

本日志由 Loveyuki 于 2009-05-11 19:03 发表,目前已经被浏览 2475 次,评论 13 次;

作者添加了以下标签: SQLiteBitrac

引用通告:http://blog.loveyuki.com/Article/118/Trackback.ashx

评论订阅:http://blog.loveyuki.com/Article/118/Feeds.ashx

评论列表

  1. 2009-05-11 19:41 | # | 回复
    学习了~最近在看你的CORE部分,学到了很多东西~
  2. 2009-05-12 09:48 | # | 回复
    虽然不是很明白,但是能体会出其中的妙处!
    强烈支持!
    还有:
    老大,什么时候整一个交流论坛吧?
    我看了dz和PHPWind推出的免费论坛服务还不错啊,能不能整一个过来,绑个米就行了!
    看我的DZ演示:http://bbs.ynwind.cn/
  3. 2009-05-12 12:33 | # | 回复
    学习了!我觉得要是 Bitrac.Auto.dll 采用其它数据库,就可以从这个在DB层面上和SQLite保持独立了!更新起来就方便了!不知道可行不!
  4. Gravatar
    Loveyuki
    2009-05-12 13:30 | # | 回复
    Bitrac.Auto.dll 只是有时候需要更新数据库里面的东西,所以才要引用 SQLite 的库文件,跟用啥数据库没关系。
  5. Gravatar
    RainBlog
    2009-05-12 21:38 | # | 回复
    卫哥 你的jQuery库是ajax.googleapis.com托管的?(页前加载事件为什么放body内,百思不得其解?)其实你的页面中脚本使用量并不大,有必要每个页面都导入一个好几十K的库吗?仅仅只有一个ajax评论.CommPost,CommList,CommCite这几个功能的实现用传统的脚本实现并不难!
    再就是你既然使用了live这一类新增的事件绑定机制,为什么不在页面加载的ready内将评论的发表和回复事件直接注入DOM呢?
  6. Gravatar
    Loveyuki
    2009-05-13 09:34 | # | 回复
    @RainBlog 不太明白你说的页前加载事件是什么?引用 jQuery 可以极大减少编码量,何乐而不为?注入不注入无所谓了,结果不是都一样么?
  7. Gravatar
    guest
    2009-05-13 13:39 | # | 回复
    貌似楼上的几位可以看到源码?
  8. 2009-05-13 14:45 | # | 回复
    @guest 源代码并没有加密,所以用反编译工具可以看到。
  9. Gravatar
    RainBlog
    2009-05-13 20:35 | # | 回复
    @Loveyuki 
    Gzip后的的库是19K,而使用jQuery的脚本Theme.js 仅仅是4K,我觉得没有必要.不过这样有利于以后丰富的交互扩展.因为jQuery的特效脚本实在太多,也很实用.以前一直想帮你在博客功能上进行相关扩展,如现在很实用的"评论人气板""评论留言的邮件通知""阅读评论权限""日志的天气心情..."等等.但看了源码后,发现你的程序基本上良好的扩展接口,再加上你的这个核是基于.net类的,不像asp可以单纯地直接修改相对页面的程序.
    花时间仔细看了下所有代码,那个滑动效果不错,与直接跳转相比人性化很多.不过没对DOM进行事件封装很恶心.把鼠标移到按扭上就出现个javascript:的函数LINK,不仅暴露了事件的对应函数也使得整个代码极不灵活!
  10. Gravatar
    RainBlog
    2009-05-15 10:43 | # | 回复
    把扩展接口做一下吧!有空把新源码跟我邮箱发一下!
  11. Gravatar
    Loveyuki
    2009-05-24 08:10 | # | 回复
    @RainBlog 扩展?事件+委托而已。想想实现细则再搞!
  12. Gravatar
    RainBlog
    2009-05-25 10:46 | # | 回复
    既然导入了jquery库,就应该发挥其优势,扩展接口做一下!
    利用jQuery.getScript扩展 用户自定义脚本。jQueryjQuery.fn.extend实现jQuery 元素集方法扩展。充分发挥jQuery的优势!要知道jQuery的扩展插件是很丰富的。国外的wp有相关扩展已经很久了。比如jQuery的页面加载效果,投票统计,还有很多网页美化比如下雪,流星,闪烁等等。这些完全可以留给用户自己去扩展。
    http://bbs.jquery.org.cn/
  13. Gravatar
    Loveyuki
    2009-05-25 13:47 | # | 回复
    @RainBlog 嗯。留给用户去扩展。我默认的随便用用就可以了。哈哈
(必填)
(必填,不会被公开)