System.Data.SQLite.SQLiteException: невозможно открыть файл базы данных - PullRequest
0 голосов
/ 03 июня 2019

Я создал базу данных SQLite. Он хранится на C: моей машины.

Мое приложение подключается к базе данных нормально при работе на локальном хосте. Однако при развертывании веб-приложения в Azure не удается подключиться к базе данных.

Я установил пакет SQLite Nuget. Я проверил это на локальном хосте, и он работает.

Строка подключения Web Config:

<connectionStrings>
<add name="Testdb" connectionString="Data Source=C:\TestSQLite\Testdb.db;Version=3;" providerName="System.Data.SqlLite"/>
</connectionStrings>

Источник данных веб-формы:

<asp:SqlDataSource ID="Testdb" ConnectionString="<%$ ConnectionStrings:Testdb %>" ProviderName="System.Data.SQLite" SelectCommand="select * from BatchNumbers" runat="server">

Я ожидаю, что веб-форма будет отображать информацию, хранящуюся в таблице базы данных SQLite 'BatchNumbers'

А вот и сообщение об ошибке:

[SQLiteException (0xe): unable to open database file]
   System.Data.SQLite.SQLite3.Open(String strFilename, String vfsName, SQLiteConnectionFlags connectionFlags, SQLiteOpenFlagsEnum openFlags, Int32 maxPoolSize, Boolean usePool) +644
   System.Data.SQLite.SQLiteConnection.Open() +5579
   HTML5OfflineApplication.BulkCopy_DataTableToSQLLite.Button1_Click(Object sender, EventArgs e) in C:\Users\Me\OneDrive - Me\Visual Studio\source\repos\Offline\Offline\Secure\BulkCopy_DataTableToSQLLite.aspx.cs:32
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +109
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +108
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +12
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +15
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +31
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3470

Я изменил строку подключения и попробовал следующее:

sql_con = new SQLiteConnection(a, true);

а также

 connectionString="Data source=C:\TestSQLite\Testdb.db; Version=3; FailIfMissing=False"

Я думаю, что моя ошибка в аргументах события, которые ссылаются на определенное место на моем устройстве, которое не доступно программе:

HTML5OfflineApplication.BulkCopy_DataTableToSQLLite.Button1_Click(Object sender, EventArgs e) in C:\Users\Me\OneDrive - Me\Visual Studio\source\repos\Offline\Offline\Secure\BulkCopy_DataTableToSQLLite.aspx.cs:32

Это то, что вызывает конфликт ?? Помогите!! Arggghe введите код

1 Ответ

2 голосов
/ 04 июня 2019

Что касается вашего комментария, вы хотите сохранить базу данных на ПК пользователя - вы не можете открывать файлы с пользовательского устройства без фактической загрузки или выбора пользователем этого файла.Вам нужно либо сохранить пользовательскую базу данных на своем сервере, чтобы получить к ней доступ в коде, либо использовать что-то на стороне клиента, например браузеры localStorage с клиентским JavaScript.Возможность доступа к файлам на компьютере пользователя из веб-приложения была бы огромной проблемой безопасности.

Другой вариант - создание клиентского приложения вместо веб-приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...