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