Получение ошибки при попытке вставить данные в базу данных в VS-2010 - PullRequest
0 голосов
/ 24 февраля 2011
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:

enter image description here

Редактировать 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 framework 4?

Это то, что я добавил в файл app.config

<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
<configSections>..................

Ответы [ 3 ]

2 голосов
/ 24 февраля 2011

Я получаю сообщение об ошибке

Инициализатор типа для 'System.Transactions.Diagnostics.DiagnosticTrace' выдал исключение

, потому что я добавил эту строку в приложение.config

<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>

Не удаляя старую запись

<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

Я заменил старую запись новой записью.Вуаля, ошибка исчезла.

0 голосов
/ 24 февраля 2011

Попробуйте запустить приложение с правами администратора. (Если вы используете Visual Studio, щелкните правой кнопкой мыши ярлык, выберите Запуск от имени администратора. Вы также можете установить его в Свойствах.)

Похоже, похожая проблема: http://connect.microsoft.com/VisualStudio/feedback/details/98437/sqlconnection-open-fails-because-of-system-transactions-diagnostics-diagnostictrace-for-non-admin-user

0 голосов
/ 24 февраля 2011

Вы должны закрыть соединение в Заключительном заявлении вашего Try / Catch.В противном случае соединение может оставаться открытым при возникновении исключения.

Другой вариант - использовать Using-Statement , который автоматически закрывает Соединение и удаляет объекты.Например:

Using SQLconnect As New SQLite.SQLiteConnection("Data Source=" & Application.StartupPath & "\Database\db" & ";")
   SQLconnect.Open()
   ' .... '
End Using
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...