从xamarin访问sqlite db时出错

t1rydlwq  于 2023-09-28  发布在  SQLite
关注(0)|答案(1)|浏览(135)

我是Xamarin的新手。试图建立一个登录页,但当访问连接到sqlite时发生错误。对象变量未设置为对象的示例。

_SQLiteConnection = DependencyService.Get<ISQLiteInterface>().GetSQLiteConnection();

这是显示错误的一行
我做了一个ISQLiteConnection接口

public interface ISQLiteConnection
{
    SQLiteConnection GetSQLiteConnection();
}

这就是我实现ISQLiteConnection的方式

[assembly: Dependency(typeof(GetSQLiteConnnection))]
namespace SqliteLoginDemo.Droid.Dependencies
{
    public class GetSQLiteConnnection : ISQLiteConnection
    {
        public SQLite.Net.SQLiteConnection GetSQLiteConnection()
        {
            var fileName = "UserDatabase.db3";
            var documentPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
            var path = Path.Combine(documentPath, fileName);
            var platform = new SQLite.Net.Platform.XamarinAndroid.SQLitePlatformAndroid();
            var connection = new SQLiteConnection(platform, path);
            return connection;
    }
    }
}
von4xj4u

von4xj4u1#

当您尝试访问当前为null或未初始化的对象上的方法或属性时,通常会出现错误消息“Object variable not set to an instance of an object”。我认为在您的例子中,错误可能是因为DependencyService.Get<ISQLiteInterface>()调用返回null,然后您试图在null对象上调用GetSQLiteConnection()方法。
确保您有ISQLiteInterface的正确实现。例如,在项目中,您应该有一个实现ISQLiteInterface并提供GetSQLiteConnection()实现的类。

public class SQLiteInterface : ISQLiteInterface
{
    public SQLiteConnection GetSQLiteConnection()
    {
        // Implement the connection logic here and return the SQLiteConnection object
    }
}

相关问题