打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VB.NET连接SQLite数据库的方法

VB.NET连接SQLite数据库的方法

但是SQLite数据库确实是一款很不错的嵌入式数据库,对于日访问量10000是绝对没有问题的。我们可以将它作为软件本地的数据库使用,目的是记录一些不是必需上传数据库的信息,比如登录次数等。这是非常好的。

所以,我们必须使用第三方类库。这里我推荐的是System.Data.SQLite类库,他的支持性比较好。

下载:http://sqlite.phxsoftware.com

下载一个Setup.exe版本即可。其他安装什么的略过。

这里会出现一个问题,就是安装完以后,类库本身的System.Data.SqlClient可能会出现错误,提示指向不明确。没有问题,关闭Visual Studio 2005,重新删除、安装即可。

System.Data.SQLIte提供了一组链接数据库,操作数据库的一组方法,得到的数据库、表本身不能被直接使用(至少我没有尝试出)。所以我们可以使用System.Data.Common下的类库来实现。可以这么理解我今天聚的例子:通过System.Data.Common的DbConnection、System.Data.Common.DbProviderFactory、System.Data.Common.DbTransaction这些熟悉的对象来操作,其他例如链接、插入部分,我们使用SQLite提供的组件。

System.Data.SQLite如何使用?

System.Data.SQLite.SQLiteConnection.CreateFile("DataBase.db") 创建数据库文件。如果有,则不会新建。

这样一来,我们只需要把System.Data.SQLIte.SQLiteFactory.Instance赋值给一个System.Data.Common.DbProviderFactory对象即可。然后其他操作全部基于DbProviderFactory来进行连接、查询、增删改即可。

代码如下:

        ' 创建数据库文件
        'File.Delete("test1.db3")
        System.Data.SQLite.SQLiteConnection.CreateFile("test.db")

        Dim factory As System.Data.Common.DbProviderFactory = SQLiteFactory.Instance
        Using conn As System.Data.Common.DbConnection = factory.CreateConnection()
            ' Dim conn As System.Data.Common.DbConnection = factory.CreateConnection()

            ' 连接数据库
            conn.ConnectionString = "Data Source=test.db"
            conn.Open()

            '创建数据表
            Dim sql As String = "create table [test1] ([id] INTEGER PRIMARY KEY, [s] TEXT COLLATE NOCASE)"
            Dim cmd As DbCommand = conn.CreateCommand()
            cmd.Connection = conn
            cmd.CommandText = sql
            cmd.ExecuteNonQuery()
            ' 添加参数
            cmd.Parameters.Add(cmd.CreateParameter())

            ' 开始计时
            Dim watch As Stopwatch = New Stopwatch()
            watch.Start()

            Dim trans As DbTransaction = conn.BeginTransaction() ' <-------------------
            Try
                ' 连续插入1000条记录
                For i As Integer = 0 To 1000
                    cmd.CommandText = "insert into [test1] ([s]) values (?)"
                    cmd.Parameters(0).Value = i.ToString

                    cmd.ExecuteNonQuery()
                Next


                cmd.CommandText = "select * from [test1]"
                Dim db As DbDataReader = cmd.ExecuteReader()
                While db.Read
                    'TextBoxTest.Text = TextBoxTest.Text & db.Item(0) & " | " & db.Item(1)
                End While

                trans.Commit() ' <-------------------
            Catch ex As Exception
                trans.Rollback() ' <-------------------
                Throw ' <-------------------

            '关闭数据库

               conn.close()
            End Try


            ' 停止计时
            watch.Stop()
            MsgBox(watch.Elapsed.ToString)

        End Using

整个代码做的就是生成一个数据库文件,新建一张表,插入1000行记录,并且计算插入的时间是多少。
<-------------------部分是用来特别标注这几句话必需要加上,如果不加的话,数据库则会生成1000个事务,这样会大大影响执行时间。所示事实上每次都建议操作完以后,Commit一下,如果出错,则进行回滚处理。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
vb.net 如何与oracle数据库连接
wince中使用SQLite
VB.NET 对SQLite轻型数据库操作的SQLiteHelp类
利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库
C#连接Access,Sql Server,Oracle,Mysql,IBM DB2,Sy...
winform中读写SQLite数据库例子
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服