随笔-3  评论-26  文章-0  trackbacks-0

       

    今天,试用了一下SQLite数据库,并简单地进行了一下数据表记录增、删、修改的编程测试,现将试用过程记录如下:

    1、安装SQLite数据库

    所谓的安装很简单,登陆http://www.sqlite.org/网站,下载SQLite数据库(目前最新版本为3.6.3)的ZIP压缩包,解压到指定目录,打开目录可以发现一个名称为sqlite3.exe的可执行文件,运行该文件可以通过命令行方式建立、管理SQLite类型的数据库(见截图)。详细的可用命令清单可以通过运行【.help】命令查询,每个命令的具体功能可查阅相关帮助文档,这里就不具体介绍了。 

 

 

    2、可视化的SQLite数据库管理工具

    管理SQLite数据库除命令行外,网络上还有很多开源的可视化的SQLite数据库管理工具,登陆https://sourceforge.net/或者通过其他搜索引擎(GOOOGLE/BAIDU),输入【SQLite】可以找到一大片相关工具,比如,SQLite Database Browser、SQLite Administrator... 等等。试用了几个,比较而言,个人比较喜欢SQLite Administrator,该工具界面支持简体中文、界面比较简洁、数据库相关管理操作相对比较简便,该工具可以登陆http://sqliteadmin.orbmu2k.de/下载,以下是该工具的一个截图。 

 

 

    3、在Visual studio 2005下使用SQLite数据库

    登陆http://sqlite.phxsoftware.com/下载最新版的ADO.NET 2.0 Provider for SQLite,下载解压缩后为一个安装包。点击安装后,可在安装目录下发现System.Data.SQLite.dll文件,同时在安装过程中该DLL文件也会自动注册到Visual studio 2005,可为开发环境引用(见图)。

 

 

 

 

     在Visual studio 2005选择C#语言,建立新的项目SQLiteView,主界面参见下面的截图。该项目实现了对SQLite数据库的数据表的数据记录的浏览、新增、修改和删除操作功能。 

 

 

数据库访问类DataAccess的代码:

using System;
using System.Data;
using System.Data.SQLite;

namespace SQLiteView
{
    class DataAccess
    {
        SQLiteConnection con ;
        SQLiteCommand command;
        public DataAccess()
        {
            con = new SQLiteConnection("Data Source=test.db3");//test.db3位于debug目录下
            command = con.CreateCommand();
        }
        //读取数据
        public DataTable ReadTable(string tableName)
        {
            command.CommandText = "SELECT * FROM " + tableName;
            SQLiteDataAdapter da = new SQLiteDataAdapter(command);
            DataTable dt = new DataTable(tableName);
            da.Fill(dt);
            return dt;
        }
        //修改数据表
        public bool UpdateTable(DataTable srcTable, string tableName)
        {
            bool isok = false;
            try
            {
                command.CommandText = "SELECT * FROM " + tableName;
                SQLiteDataAdapter oda = new SQLiteDataAdapter(command);
                SQLiteCommandBuilder ocb = new SQLiteCommandBuilder(oda);
                oda.InsertCommand = ocb.GetInsertCommand();
                oda.DeleteCommand = ocb.GetDeleteCommand();
                oda.UpdateCommand = ocb.GetUpdateCommand();
                oda.Update(srcTable);
                isok = true;
            }
            catch (Exception ex)
            {}
            return isok;
        }
    }
}

相关RIDU操作方法的代码如下:

       //刷新数据源
        private void RefreshTable()
        {
            this.dataGridView1.DataSource = dba.ReadTable("testone");
        }
        //更新数据源
        private void UpdateTable(DataTable dt)
        {
            if (dt != null)
            {
                if (dba.UpdateTable(dt, "testone"))
                {
                    RefreshTable();
                    MessageBox.Show("OK");
                }
                else
                    MessageBox.Show("Failed");
            }
        }
        //浏览
        private void button1_Click(object sender, EventArgs e)
        {
            RefreshTable();
        }
       
        //新增、修改
        private void button2_Click(object sender, EventArgs e)
        {
            DataTable dt = this.dataGridView1.DataSource as DataTable;
            UpdateTable(dt);
        }
       
        //删除
        private void button3_Click(object sender, EventArgs e)
        {
            DataTable dt = this.dataGridView1.DataSource as DataTable;
            DataRowView rowview = this.dataGridView1.CurrentRow.DataBoundItem as DataRowView;
            if (rowview != null)
            {
                rowview.Row.Delete();
                UpdateTable(dt);
            }            
        } 

    通过试用 ,初步感觉SQLite数据库对SQL语言的支持也不错、有相关不俗实力的技术支持(开发团队、社区、论坛)、运行速度较快、普遍关注程度较高、够轻量级...,其中够轻量级是其最大的优点和亮点。

    共享这篇简单的试用手记,希望能吸引大家对SQLite数据库的关注,同时也希望能给予初次使用 SQLite数据库的朋友以帮助。谢谢!

附源码下载:/Files/ysxlh/SQLiteView.rar

 

 

 

posted on 2008-10-11 22:37 yisx 阅读(1841) 评论(13)  编辑 收藏 网摘

评论:
#1楼 2008-10-11 22:41 | 任力      
不错,这两天也在搞这个东东~~~
支持一下

  回复  引用  查看    
#2楼 2008-10-11 23:31 | .progame[未注册用户]
我用很长时间了 从vb6到.net 很不错的东西
但不可重用 用来做本地的一些比如说资源字符串的存储什么的很不错

  回复  引用    
#3楼[楼主] 2008-10-11 23:36 | 易曙贤      
请教2楼的 .progame 所说的"不可重用"具体指哪些方面...,谢谢!
  回复  引用  查看    
#4楼 2008-10-11 23:48 | clefoo      
不错,正需要。及时雨啊
  回复  引用  查看    
#5楼 2008-10-12 08:11 | 凯锐      
关注一下,感谢推荐。
  回复  引用  查看    
#6楼 2008-10-12 09:12 | ccccccccccc[未注册用户]
呵呵,我理解2楼说的"不可重用"里的重应该读(zhong),意思是不要在重要的地方使用吧!
  回复  引用    
#7楼 2008-10-12 10:33 | 麦舒      
不错,现在SQLite用的人还是比较少。
在这里顺便给大家推荐一个支持SQLite的Linq。http://www.cnblogs.com/ansiboy/" target="_new">http://www.cnblogs.com/ansiboy/

  回复  引用  查看    
#8楼 2008-10-12 10:48 | HappyQQ      
支持。
  回复  引用  查看    
#9楼 2008-10-12 11:26 | Jason Cui      
如果用这个来做网站的资源字符串存储,大并发情况下的读取性能怎么样?
  回复  引用  查看    
#10楼 2008-10-12 13:09 | dreamland      
sqlite的并发效果不感恭维,网站还是用berkely DB比较好
  回复  引用  查看    
#11楼 2008-10-12 20:46 | jasonlee's blog      
SQLite Expert Professional 管理工具 比较好用,还支持数据导入
  回复  引用  查看    
#12楼 2008-10-12 20:50 | 二叉树      
不错,了解了。
  回复  引用  查看    
#13楼 2008-11-28 09:34 | wsky      
mark
  回复  引用  查看    
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1308794




相关文章:

相关链接: