Xamarin中的SQLite抛出异常连接

时间:2017-04-07 09:37:51

标签: c# sqlite xamarin xamarin.ios xamarin.android

我有问题。我正在使用Xamarin用于iOS和Android应用程序。但是当我尝试构建与文件夹路径的连接时,它总是抛出异常。这是我的代码:     公共类查询     {         private string folder = DependencyService.Get()。GetAppDataFolder();

    public bool createDataBase()
    {
        try
        {
            using (var connection = new SQLiteConnection(Path.Combine(folder, "Test.db")))
            {
                connection.CreateTable<Posten>();
                return true;
            }
        }
        catch (SQLiteException ex)
        {
            System.Diagnostics.Debug.WriteLine("SQLiteEx", ex.Message);
            return false;
        }
    }
}

它在使用中抛出异常。我使用DependencyService来获取我想要将数据库放入的路径。

private string folder = DependencyService.Get<IFileSystemService>().GetAppDataFolder();
在android方面(我目前只是测试android)我已经实现了这样:

public class FileSystemServiceAndroid : IFileSystemService
{
    public string GetAppDataFolder()
    {
        return System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
    }
}

这就是例外情况:

  

未处理的例外:

     

System.TypeInitializationException:&gt;&#39; SQLite.SQLiteConnection&#39;的类型初始值设定项。抛出一个例外。发生

我刚将我尝试访问createDataBase方法的代码移动到我的工具栏初始化的位置,我在应用程序中收到了一个消息框: The Error

1 个答案:

答案 0 :(得分:0)

在我使用Xamarin.Android中的SQLite.PCL的项目中,我使用以下内容来获取数据库文件夹和文件位置:

String dbFolder = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/project_name/";
String dbFileName = "project_name.db";
String dbPath = dbFolder + dbFileName;
//To check if the database file exists: System.IO.File.Exists(dbPath);
//To delete the database file: System.IO.File.Delete(dbPath);
SQLiteConnection dbConn = new SQLiteConnection(dbPath);