我有问题。我正在使用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;的类型初始值设定项。抛出一个例外。发生
答案 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);