【发布时间】:2016-08-22 08:44:12
【问题描述】:
我正在使用 xamarin 和 sqlite 制作一个 android 应用程序。我正在尝试在按钮add 上连接数据库testdb.sqlite 的表user,但在我的平板电脑上调试应用程序时出现此错误:
SQLite.SQLiteException:无法打开数据库文件:/storage/emulated/0/testdb.sqlite/testdb.sqlite (CannotOpen)
我的代码是:
button_add.Click += delegate
{
ring dbName = "testdb.sqlite";
/// Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string dbPath = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.ToString(), dbName);
// Check if your DB has already been extracted.
if (!File.Exists(dbPath))
{
using (BinaryReader br = new BinaryReader(Assets.Open(dbName)))
{
using (BinaryWriter bw = new BinaryWriter(new FileStream(dbPath, FileMode.Create)))
{
byte[] buffer = new byte[2048];
int len = 0;
while ((len = br.Read(buffer, 0, buffer.Length)) > 0)
{
bw.Write(buffer, 0, len);
}
}
}
}
editemail.Text = "I love coding";
// db.createdatabase();
//folder_loc.Text = folder;
using (var connection = new SQLiteConnection(System.IO.Path.Combine(dbPath, dbName)))
{
// connection.CreateTable<person>();
//string query = "select * from test";
// connection.Query <test> (query);
var query = connection.Table<user>();
foreach (var stock in query)
{
Console.WriteLine("Stock: " + stock.name);
editname.Text = stock.name;
}
}
};
user 声明:
public class user
{
public int id { get; set; }
//public string email { get; set; }
public string name { get; set; }
//public string gender { get; set; }
}
【问题讨论】:
标签: c# android sqlite xamarin.android database-connection