Try
Dim SQLconnect As New SQLite.SQLiteConnection()
Dim SQLcommand As SQLiteCommand
SQLconnect.ConnectionString = "Data Source=" & Application.StartupPath & "\Database\db" & ";"
SQLconnect.Open() ' VS highlights this line
SQLcommand = SQLconnect.CreateCommand
SQLcommand.CommandText = "INSERT INTO Table1 (Status) VALUES ('Enabled')"
SQLcommand.ExecuteNonQuery()
SQLcommand.Dispose()
SQLconnect.Close()
Catch ex As Exception
MsgBox("Error: Operation unsuccessfull")
End Try
尝试将数据插入数据库时出错
错误:'System.Transactions.Diagnostics.DiagnosticTrace'的类型初始值设定项引发异常。
我如何解决这个问题?
修改1:
编辑2:
我在不使用Try Catch Block
的情况下尝试了它Dim sqlConnection As New SQLite.SQLiteConnection()
Dim sqlCommand As New SQLiteCommand
sqlConnection.ConnectionString = "Data Source=db.s3db" 'is it because of the extension of the database ?
sqlConnection.Open()
sqlCommand = sqlConnection.CreateCommand()
sqlCommand.CommandText = "INSERT INTO Table1 (Status) VALUES ('Enabled')"
sqlConnection.Close()
是否因为数据库扩展?我使用sqlite Admin创建表
编辑3:
我刚刚在VS 2008中尝试过它,它完美无瑕。为什么它在VS 2010中不起作用。是否与app.config文件有关?或.net框架4?
这是我在app.config文件中添加的内容
<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
<configSections>..................
答案 0 :(得分:2)
我收到了错误
的类型初始值设定项 &#39; System.Transactions.Diagnostics.DiagnosticTrace&#39; 抛出异常
因为我将此行添加到app.config
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
不删除旧条目
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
我用新条目替换旧条目。 Voila错误消失了。
答案 1 :(得分:0)
您应该在Try / Catch的Finally-Statement中关闭连接。否则,当发生异常时,连接可能会保持打开状态。
另一种选择是使用Using-Statement自动关闭Connection并处理对象的内容。例如:
Using SQLconnect As New SQLite.SQLiteConnection("Data Source=" & Application.StartupPath & "\Database\db" & ";")
SQLconnect.Open()
' .... '
End Using
答案 2 :(得分:0)
尝试使用管理员权限运行应用程序。(如果您使用的是Visual Studio,请右键单击快捷方式,选择以管理员身份运行。您也可以在属性中进行设置。)