前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VB.NET 对SQLite轻型数据库操作的SQLiteHelp类

VB.NET 对SQLite轻型数据库操作的SQLiteHelp类

作者头像
一线编程
发布2019-07-22 14:54:12
3.1K0
发布2019-07-22 14:54:12
举报
文章被收录于专栏:办公魔盒办公魔盒

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起MysqlPostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。

SQLiteHelp类源代码:

''***************************************************************
''***************************************************************
''***由于SQL是嵌入式小型数据库,所以只能把数据库放在程序根目录***
''**不能指定文件路径,需要引用System.Data.SQLite,在nuget可以获取
''***更多精彩内容请关注微信公众号:VB小源码 *********************
''***获取更多教程请加QQ群:344402874 *****************************
''***************************************************************
''***2019年04月20日 星期六 **************************************
''***************************************************************

Imports System.Data.SQLite
''' <summary>
''' SqlLite数据连接类
''' </summary>
Public Class Class_sql_lite
    ''定义数据库名称
    Private Shared ReadOnly db_name As String = "vbxym.db"
    ''定义数据库连接
    Private Shared ReadOnly CN As SQLiteConnection = New SQLiteConnection("Data Source=" & db_name & ";Pooling=true;FailIfMissing=false")

    ''' <summary>
    ''' 创建sqllite数据库
    ''' </summary>
    ''' <param name="dbname">数据库名称</param>
    ''' <returns></returns>
    Public Shared Function Create_db(ByVal dbname As String) As Boolean
        '判断数据库是否已经打开,如果已打开就关闭
        If CN.State = ConnectionState.Open Then CN.Close()
        '定义数据库名称
        Dim SQLDB As String = dbname & ".db"
        Try
            '判断根目是否已经存在数据库,存在则删除
            If IO.File.Exists(SQLDB) = True Then IO.File.Delete(SQLDB)
            '创建数据库
            SQLiteConnection.CreateFile(SQLDB)
        Catch ex As Exception
            MsgBox("数据库创建失败:" & ex.Message)
        End Try
        '判断是否创建成功,成功返回真,否则返回假
        If IO.File.Exists(SQLDB) = True Then
            Return True
        Else
            Return False
        End If
    End Function

    ''' <summary>
    ''' 返回记录集
    ''' </summary>
    ''' <param name="SQL">sql语句</param>
    ''' <returns></returns>
    Public Shared Function GET_SQL_RES(ByVal SQL As String) As DataTable
        '判断数据库是否已经打开,如果已关闭就打开
        If CN.State <> ConnectionState.Open Then CN.Open()
        '定义数据库适配器
        Dim SlAd As New SQLiteDataAdapter(SQL, CN)
        '定义数据集
        Dim ds As New DataSet
        '通过适配器填充数据到数据集
        SlAd.Fill(ds, "SQL_LITE")
        '定义数据表,并把数据集填充进数据表
        Dim DT As DataTable = ds.Tables("SQL_LITE")
        '返回数据表
        GET_SQL_RES = DT
        '判断数据库是否已经打开,如果已打开就关闭
        If CN.State = ConnectionState.Open Then CN.Close()
    End Function

    ''' <summary>
    ''' 执行SQL命令
    ''' </summary>
    ''' <param name="sql">sql语句</param>
    ''' <returns></returns>
    Public Shared Function Cmd_sqllite(ByVal sql As String) As Boolean
        '判断数据库是否已经打开,如果已关闭就打开
        If CN.State <> ConnectionState.Open Then CN.Open()
        '定义数据库命令,并创建命令
        Dim cmd As SQLiteCommand = CN.CreateCommand()
        '定义数据库指令
        cmd.CommandText = sql
        Dim result As Object = Nothing
        Try
            '返回执行参数
            result = cmd.ExecuteNonQuery()
        Catch ex As Exception
            MsgBox("sql命令错误:" & ex.Message)
        End Try

        '参数等于0则失败,否则成功
        If result <> 0 Then
            Return True
        Else
            Return False
        End If
        '释放数据库指令
        cmd.Dispose()
        '判断数据库是否已经打开,如果已打开就关闭
        If CN.State = ConnectionState.Open Then CN.Close()
    End Function

End Class

示例源代码:


Public Class Form1


    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        Sam()
    End Sub


    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

        If Class_sql_lite.Cmd_sqllite("DELETE FROM TB_USER WHERE rowid = '" & InputBox("输入要删除的ID号") & "'") = False Then MsgBox("记录删除失败!")

    End Sub



    Sub Sam() '示例

        If Class_sql_lite.Create_db("VBXYM") = False Then MsgBox("数据库创建失败!")

        Class_sql_lite.Cmd_sqllite("CREATE TABLE main.tb_user (`ID` Integer Not NULL PRIMARY KEY AUTOINCREMENT, `USER` TEXT Not NULL, `PASS` TEXT Not NULL, `TIME` TEXT Not NULL)")

        If Class_sql_lite.Cmd_sqllite("INSERT INTO TB_USER(USER, PASS, TIME) VALUES ('vb小源码', '123456', '" & Now & "')") = False Then MsgBox("插入数据失败!")

        DataGridView1.DataSource = Class_sql_lite.GET_SQL_RES("SELECT * FROM tb_user")

        DataGridView1.Refresh()

    End Sub
End Class

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 办公魔盒 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档