文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>c# winform开发 之 SQLLite 数据库 部署

c# winform开发 之 SQLLite 数据库 部署

时间:2011-04-18  来源:A_明~坚持

      SQLLite是轻量级数据库,很小,据说哪个苹果公司使用了这个库,而且好多android开发也用了这个库,所以我是很刚兴趣了

      我现在刚好开发一个winform程序,希望在客户端存储一些信息,在离线状态下也能够同步数据库。本来解决方案是在本地采用xml 文件进行存储数据,也很好实现,但是xml文件操作起来毕竟没有数据库那么方便,于是就更改了解决方案,采用SQLLite这个轻量级数据库。

    1. 工具:visual studio 2008    .NET framework 3.5

    2. 据库的部署,先从官方网站找了一下,发现官方又好多包,也不知道到底下载哪个包,怎样安装,于是继续找,于是找到了这个

     tp://sourceforge.net/projects/sqlite-dotnet2/files/SQLite%20for%20ADO.NET%202.0/1.0.66.0/SQLite-1.0.66.0-setup.exe/download

点击下载后,安装就行。(注意:安装的时候最好不要开着vs2008,貌似发现不了,还得重起,偶就是这样,麻烦)

    3. 打开vs2008,新建一个winform应用程序

    4. 打开“服务器资源管理器” 在这里右击“数据连接”---->添加连接   ------》更改  -----》更改数据源为:“SQLLite Database FIle“----->确定 ---->Browse选择你的数据库,(注意选择的文件一定是以后缀“.db3”结束的,如果你还没建库(我就是),那么你就随便建一个以后缀为"db3"结束的文件,放到你项目的bin目录的debug中(很重要啊,当程序发布时,路径问题是很大的,SQLLite一定要用绝对路径才能找到,无论你用什么语言开发,就是这样规定的))

    5.OK,SQLLite已经建好了,我们可以在vs2008中用图形化界面操作我们的SQLLite库了,这是多么棒的事情(省去我们安装一些SQLLite的管理软件了)。

    6.右击项目名称 ---- >>> 添加引用--->  添加System.data.SQLite (如果要用LinQ,把System.data.SQLite.Linq也添上)

    7.ok,好了我们可以编写代码操作SQLLite数据库了。新建“SqlLiteHelper.cs”类

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SQLite;//需要添加
using System.Windows.Forms;//需要添加

namespace Client
{
    class SqlLiteHelper
    {

        #region 连接字符串
        /// <summary>
        /// 连接数据库字符串
        /// </summary>
        /// <returns></returns>
        public static String getSQLiteConn()
        {
            return "Data Source=" + Application.StartupPath + "\\statistics.db3";  //获取绝对路径,看好了,别搞错了
        }
       #endregion
         
       
      public static void insert(String ip)
        {
            SQLiteConnection conn = new SQLiteConnection(SqlLiteHelper.getSQLiteConn());
            SQLiteCommand cmd = new SQLiteCommand();//很熟悉把
            DateTime StartComputerTime = DateTime.Now;
            cmd.Connection = conn;
            cmd.CommandText = "insert into TimeBill(id,ip,StartComputerTime,logoutTime) values(@id ,@ip,@StartComputerTime,0)";
            cmd.Parameters.AddWithValue("@ip", ip);
            cmd.Parameters.AddWithValue("@id", 1);
            cmd.Parameters.AddWithValue("@StartComputerTime", StartComputerTime.ToString());
            using (conn)
            {
                conn.Open();
                cmd.ExecuteNonQuery();
            }
        }

    }
}

    8.ok,game over。如果你执行出现异常为“no such table”,那么你的错误一定处在路径上,路径一定是绝对路径,别搞糟了。

    “no such table ”是找不到表,但是路径是决定库的地址的,原来SQLLite在你要它找的路径下找不到数据库的时候,它会自动建设一个空的SQLLite库,那么你找的库就成了它了,因为它是空的自然就没有表了,所以就会报告“no such table "的错误(这个问题困扰了好长时间,不知道查找了多少东东,还以为是SQLLite的bug来着,呵呵),把路径写对了就可以了。

    注意:写SQLLite的sql语句时候,在sql server中能用部分函数在SQLLite中可以用,注意是部分,也就是说好多数据库函数是不能使用的,也很正常,毕竟SQLLite那么小,对吧。

我就发现一个函数不能用getdate()不能用,但是max()取得最大值的还能用,呵呵。

 

自己搜索资料和实际开发的时候碰到的东东,刚开始接触,肯定会有很多东西错误,才学了一上午,写下这篇初学日志,已备以后忘掉能即期,也希望能给初学者省电时间了。

相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载