Vb.net net及其在SQLite中的应用
我只是想确保这是使用SQLite以获得最快性能的正确代码Vb.net net及其在SQLite中的应用,vb.net,sqlite,Vb.net,Sqlite,我只是想确保这是使用SQLite以获得最快性能的正确代码 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim cons As New SQLite.SQLiteConnection cons.ConnectionString = "Data Source=C:\database.s3db; Version=3" cons.Open
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim cons As New SQLite.SQLiteConnection
cons.ConnectionString = "Data Source=C:\database.s3db; Version=3"
cons.Open()
Using tx = cons.BeginTransaction()
Dim cmd As SQLite.SQLiteCommand
cmd = cons.CreateCommand()
For i As Integer = 0 To 1000
Try
cmd.CommandText = "INSERT INTO table1 VALUES('" & i & "')"
cmd.ExecuteNonQuery()
Catch ex As Exception
End Try
Next
tx.Commit()
cmd.Dispose()
End Using
cons.Close()
End Sub
正如我所提到的,使用参数化查询、不接受异常以及在必要时使用语句来实现这一点的正确方法是这样的。 请注意,这不是最快的方法
理想情况下,如果执行相同任务的紧密循环中出现异常,则不应继续执行。如果一个人失败了,那么一切都有可能失败。因此,在这种情况下,您应该删除循环中的try/catch,并将其包裹在for循环上。这个问题不需要
c
标记。已删除。我不知道这是否是为了获得最佳性能,但还有一些需要改进的地方。1) 使用参数化查询,2)不要吞下异常(报告给用户或至少记录它)3)在使用block时包装连接和命令一些示例会很好,SriramI可以举个例子,但这并不是这个特定问题的答案,因为您要求的是最快的性能。我将为您链接一些问题。检查数据库调用的正确使用。在这里。我假设您知道如何处理异常:)还有一件事,当您想要通知某个用户时,您必须像这样使用@XK8ER。使用(@)。您正在使用SqlConnection,而我正在使用SQLite.SQLiteConnection。我什么时候关闭连接并进行处理和其他操作?是的,将所有与Sql相关的内容都更改为SqlLite。例如:SqlCommand
到SqlLiteCommand
。您不需要关闭连接Dispose
将处理该问题。当控件离开时,会自动调用Dispose
,使用block我做了这些更改并运行了代码,没有出现错误,但数据库文件保持不变。。我在打开之前加了这个conn.ConnectionString=“Data Source=C:\Data.s3db;Version=3”
尝试添加准确的列名,而不是像这样添加@columnnamecmd.CommandText=“插入到表1值(@table1)”cmd.Parameters.AddWithValue(@table1”,i)
Private Sub InsertRows()
Using conn As New SqlConnection
conn.Open()
Using tx = conn.BeginTransaction()
For i As Integer = 0 To 1000
Using cmd = conn.CreateCommand() 'Proper using statements wherever necessary
Try
cmd.CommandText = "INSERT INTO table1 VALUES(@ColumnName)" 'Paramertized queries
cmd.Parameters.AddWithValue("@ColumnName", i)
cmd.ExecuteNonQuery()
Catch ex As Exception
logger.ErrorException(ex) 'Logging the exception or shoe messagebox
End Try
End Using
Next
End Using
End Using
End Sub