C# 使用sqlite在xamarin中连接表
我正在使用xamarin和sqlite制作一个android应用程序。我试图在按钮C# 使用sqlite在xamarin中连接表,c#,android,sqlite,xamarin.android,database-connection,C#,Android,Sqlite,Xamarin.android,Database Connection,我正在使用xamarin和sqlite制作一个android应用程序。我试图在按钮add上连接数据库testdb.sqlite的tableuser,但在调试平板电脑上的应用程序时,我遇到以下错误: SQLite.SQLiteException:无法打开数据库文件:/storage/emulated/0/testdb.SQLite/testdb.SQLite(CannotOpen) 我的代码是: button_add.Click += delegate { ring dbName = "t
add
上连接数据库testdb.sqlite
的tableuser
,但在调试平板电脑上的应用程序时,我遇到以下错误:
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;
}
}
};
您在代码中定义了两次名称,一次在这里:
string dbPath = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.ToString(), dbName);
然后,当您想打开它时,可以使用dbPath和dbName,或者在以下位置删除dbName引用:
string dbPath = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.ToString(), dbName);
或在:
(var connection = new SQLiteConnection(System.IO.Path.Combine(dbPath, dbName)))
它应该会起作用;) 那么,您在代码中定义了两次名称,一次在这里:
string dbPath = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.ToString(), dbName);
然后,当您想打开它时,可以使用dbPath和dbName,或者在以下位置删除dbName引用:
string dbPath = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.ToString(), dbName);
或在:
(var connection = new SQLiteConnection(System.IO.Path.Combine(dbPath, dbName)))
它应该会起作用;) 我使用'dbpath'第一个用于创建数据库,一个用于连接。我使用'dbpath'第一个用于创建数据库,一个用于连接