Так что проблема была в Windows Phone. Как-то он не может запустить SQLiteConnection. Но Android делает, поэтому iOS тоже.
Прежде всего я переехал мой DB к локальному пути применения:
public static string GetLocalFilePath(string filename)
{
string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
string dbPath = Path.Combine(path, filename);
CopyDatabaseIfNotExists(dbPath);
return dbPath;
}
private static void CopyDatabaseIfNotExists(string dbPath)
{
if (!File.Exists(dbPath))
{
using (var br = new BinaryReader(Application.Context.Assets.Open("KDLife_mobileDB.db3")))
{
using (var bw = new BinaryWriter(new FileStream(dbPath, FileMode.Create)))
{
byte[] buffer = new byte[2048];
int length = 0;
while ((length = br.Read(buffer, 0, buffer.Length)) > 0)
{
bw.Write(buffer, 0, length);
}
}
}
}
}
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
global::Xamarin.Forms.Forms.Init (this, bundle);
global::Xamarin.FormsMaps.Init(this, bundle);
string dbPath = GetLocalFilePath("KDLife_mobileDB.db3");
LoadApplication (new KDLife_mobile.App());
App.ScreenWidth = (int)Resources.DisplayMetrics.WidthPixels;
App.ScreenHeight = (int)Resources.DisplayMetrics.HeightPixels;
}
Тогда я открыл соединение:
public SQLiteConnection DBClass_conn()
{
database = new SQLiteConnection (DatabasePath);
return database;
}
Затем я добавил SQLiteCommand:
SQLiteCommand cmd = new SQLiteCommand(App.Database.DBClass_conn());
И запрос :
public string querytext(string q_table)
{
string sql = "SELECT \"2000f\" FROM Bravo WHERE Age = \"20\" AND Period = \"15\"";//, App.amount_gender, q_table, App.age;
return sql;
}
Тогда я просто изменить CommandText и ExecuteScalar:
cmd.CommandText = querytext("Symphony");
string count = (string)cmd.ExecuteScalar<string>();
Сейчас это выполнить только один запрос, но это не трудно сделать его более универсальным.
Из любопытства: почему у вас есть несколько столов с одинаковой структурой? Что вы имеете в виду, чтобы выполнить 1 элемент за раз? Я не думаю, что это имеет смысл в контексте. Вы что-то пробовали? Если вам нужен общий учебник: на этом веб-сайте есть учебник, проверьте их проект github: http://developer.xamarin.com/guides/cross-platform/xamarin-forms/working-with/databases/ –
Забудьте о несколько таблиц. Я добавлю столбец с еще одним полем, из которого результат может зависеть. –
Учебники не показывают, как именно я могу получить доступ к данным и выполнить SQL. –