Sqlite 错误无法打开数据库文件

Posted

技术标签:

【中文标题】Sqlite 错误无法打开数据库文件【英文标题】:Sqlite Error Unable to open database file 【发布时间】:2021-10-15 10:27:06 【问题描述】:

我正在使用带有 Xamarin/C# 应用程序的 android 平板电脑。使用这款平板电脑,我正在尝试访问驻留在我的 Windows 10 机器上的 SQLite 数据库。我选择使用 USB/Android 与 Android 模拟器,该应用程序仍驻留在 Windows 10 机器上。这似乎无关紧要,但我也尝试过映射驱动器、共享文件夹和创建网络连接。 Project References

这是代码:

using Microsoft.Data.Sqlite;
using System;
using System.Windows.Input;
using Xamarin.Essentials;
using Xamarin.Forms;

命名空间 CicoAndroid 公共部分类 MainPage : ContentPage public ICommand TapCommand => new Command(async (url) => await Launcher.OpenAsync(url)); 私有只读字符串 db1 = @"数据源=\LAPTOP-FJUIC9RR\db\db.sqlite"; 公共主页() 初始化组件();

    private void LoginClicked(object sender, EventArgs e)
    
        int rows;
        try
        
            Console.WriteLine("DB1: " + db1);
            SqliteConnection conn = new SqliteConnection(db1);
            conn.Open();  ***This is the line that is throwing the exception.***
            using (SqliteCommand cmd = conn.CreateCommand())
            
                cmd.CommandText = "SELECT COUNT(*) FROM [tblUsers] WHERE USERNAME = 'someUser'";
                rows = (int)cmd.ExecuteScalar();
                Console.WriteLine("ROWS: " + rows);
                cmd.Dispose();
            
            conn.Dispose();
        
        catch (Exception ex)
        
           lblAuth.Text = "FUL: a.c.us" + Environment.NewLine + ex.ToString();
           return;
        

我对 Xamarin 和 C# 非常陌生,我已经尝试了数十种代码和 NuGet SQLite 包的变体。任何帮助将不胜感激。

谢谢

【问题讨论】:

docs.microsoft.com/en-us/xamarin/get-started/quickstarts/… 所以您的应用只有在与包含数据库的桌面位于同一本地网络时才能使用? 【参考方案1】:

Xamarin.Forms 支持使用 SQLite 数据库引擎的数据库驱动应用程序,这使得在共享代码中加载和保存对象成为可能。 文章 Xamarin.Forms Local Databases 介绍了 Xamarin.Forms 应用程序如何使用 SQLite.Net 将数据读取和写入本地 SQLite 数据库。

按照以下步骤将 SQLite.NET 集成到移动应用程序中:

    Install the NuGet package.

    Configure constants.

    Create a database access class.

    Access data in Xamarin.Forms.

    Advanced configuration.

更多详情,您可以查看文档:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/data-cloud/data/databases.

上面的链接中还包含一个示例,您可以查看并参考它的代码。

此外,您还可以查看文档Store data in a local SQLite.NET database。

【讨论】:

谢谢您,我按照每条指令进行操作,但仍然无法打开数据库文件。是因为它是外部数据库吗?虽然代码不同,但错误是在与以前相同的位置引发的。在 MainPage.xaml.cs @TodoItemDatabase 数据库 = 等待 TodoItemDatabase.Instance;. 你的数据库在哪里?你的问题的错误日志是什么? 您想通过平板电脑的 Xamarin 应用访问您计算机上的数据库文件吗?

以上是关于Sqlite 错误无法打开数据库文件的主要内容,如果未能解决你的问题,请参考以下文章

SQLite - 无法打开数据库文件

SQLite 无法打开数据库文件:Laravel + Windows

apache flask sqlite 无法在 ubuntu 上打开数据库文件

sqlite3无法在终端运行

iphone sqlite'有时无法打开数据库文件'

无法从带有意外字符的 sqlite3 文件中检索数据