簡體   English   中英

System.Data.SQLite.SQLiteException:無法打開數據庫文件

[英]System.Data.SQLite.SQLiteException: unable to open database file

我已經創建了一個SQLite數據庫。 它存儲在我的機器的C:中。

在本地主機中運行時,我的應用程序連接到db ok。 但是,當我將Web App部署到Azure時,它將無法連接數據庫。

我已經安裝了SQLite Nuget軟件包。 我已經在本地主機上對此進行了測試,並且可以正常工作。

Web配置連接字符串:

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

Web表單數據源:

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

我希望Web表單顯示存儲在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"

我認為我的錯誤在於此處的args事件引用了設備上程序無法訪問的特定位置:

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在這里輸入代碼

關於您的注釋,您想將數據庫存儲在用戶PC上-您必須先明確地上傳/選擇數據庫,然后才能從用戶設備打開文件。 您需要將特定於用戶的數據庫存儲在服務器上,以便在后面的代碼中訪問它,或者使用客戶端之類的東西,例如帶有客戶端JavaScript的瀏覽器localStorage。 能夠從Web應用程序訪問用戶計算機上的文件將是一個巨大的安全問題。

另一種選擇是創建客戶端應用程序而不是Web應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM