suche jetzt schon Tage nach einer Lösung für meine Xamarin App die ich mit Visual Studio erstelle.
Die Dokumentation von Microsoft ist leider in diesem Bereich unvollständig.
Was ich hinbekomme ist folgendes: Sqlite Datenbank erstellen. Daten in Listview hinzufügen ,anzeigen, löschen usw.
Das ganze hört auf wenn ich die Daten aus Sqlite weiterverarbeiten möchte.
Abfragen in einen ListView anzeigen das funktioniert alles soweit. Nur ich bekomme die Daten einfach nicht zurück als String.
Was möchte ich erreichen?
z.B nach der ID 200 in der Datenbank suchen.
Von ID 200 den Vornamen in ein DisplayAlert auf dem Smartphone anzeigen.
Was bekomme ich momentan:
Leider nicht den Vornamen sondern nur folgenden Text:
System.Threading.Tasks.Task`1[System.Collections.Generic.List`1[Projekt.Models.Person]]
Hier mein Code
Database.cs
public class Database
{
readonly SQLiteAsyncConnection _database;
public Database(string dbPath)
{
_database = new SQLiteAsyncConnection(dbPath);
_database.CreateTableAsync<Person>().Wait();
}
public Task GetVornameAsync(int id)
{
return = _database.QueryAsync<Person>("SELECT Vorname FROM person WHERE ID ="+id);
}
Person.cs
using System;
using System.Collections.Generic;
using System.Text;
using SQLite;
namespace Test.Models
{
[Table("person")]
public class Person
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
[MaxLength(250), Unique]
public string SqlID { get; set; }
[MaxLength(250)]
public string Vorname { get; set; }
[MaxLength(250)]
public string Nachname { get; set; }
[MaxLength(250)]
public string Passwort { get; set; }
public bool Passwort_Speichern { get; set; }
public bool Admin { get; set; }
public DateTime Letzte_Aktualisierung { get; set; }
public int Urlaub_Jahr { get; set; }
public int Urlaub_Vorjahr { get; set; }
public int Urlaub_Genommen { get; set; }
public int Urlaub_Rest { get; set; }
public int Ueberstunden { get; set; }
}
}
page.xaml.cs
private async void LoginButton(object sender, EventArgs e)
{
var ausgabe = App.Database.GetVornameAsync(200);
string ausgabe2 = ausgabe.ToString();
_ = DisplayAlert("Info", ausgabe2, "OK");
}
App.xaml.cs
public partial class App : Application
{
static Database database;
public static Database Database
{
get
{
if (database == null)
{
database = new Database(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "test.db3"));
}
return database;
}
}
Ich hoffe mir kann endlich einer weiter helfen!
Viele Grüße
Christoph