2017-04-04 11 views
1

Ich möchte SQLite-Daten in meine App einfügen.SQLite-Daten in UWP-App auffüllen

Nehmen wir an, ich habe eine App erstellt, um Details über Fußballspiele aufzeichnen zu können. Ich habe 3 TextBox (teamName, goalScored, goalConceded) und einen Button, um diese Werte in die Datenbank einzufügen. Lassen Sie uns auch sagen, dass ich Details in db eingefügt habe.

Ich möchte diese Daten/Details aus der Datenbank auf eine ListView (in XAML definiert) in meiner App zu füllen.

+0

Sie müssen genauer mit Ihrem Problem und zeigen Beispiele von dem, was Sie bisher versucht haben. Im Allgemeinen wird SO nicht gut auf Fragen antworten, die so breit sind. Bitte schreiben Sie Code über alle Sprachen und Prozesse, die Sie bisher implementiert haben. –

+0

Was haben Sie bisher versucht, die Daten aus der DB zu holen und auf Ihrer UI anzuzeigen? Bitte lesen [MCVE] – AVK

Antwort

1

Binden Sie Ihre ListView an eine ViewModel -Eigenschaft (normalerweise ObservableCollection). Dann nach dem Einfügen nur ObservableCollection Daten aktualisieren.

0

Ich möchte diese Daten/Details aus der Datenbank auf eine ListView (in XAML definiert) in meiner App auffüllen.

Zuerst müssen Sie die Daten aus der Datenbank nach Ihren Anforderungen abfragen. Wie Sie die Daten erhalten, hängt vom SQLite Nuget-Paket ab, das Sie für die UWP-App verwenden. Zweitens müssen Sie möglicherweise die Daten in einer Quellensammlung lesen, möglicherweise ObservableCollection wie @Ion Caisîn sagte. Hier empfiehlt es sich, Entitäten zu verwenden, um Modelle für Tabellendaten zu erstellen. Zuletzt binden Sie die Quelle an die ListView.

Im Folgenden finden Sie eine einfache Demo zum Lesen der Daten aus einer SQLite-Datenbank und zum Binden von Daten an ListView. Ich benutze das SQLitePCL Nuget-Paket.

XAML-Code:

<Button x:Name="btngetdata" Content="get data" Click="btngetdata_Click"></Button> 
<ListView x:Name="ListCustomer" SelectionMode="None"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <TextBlock Margin="2,10,0,0" Text="{Binding Name}" /> 
       <TextBlock Margin="2,10,0,0" Text="{Binding City}" /> 
       <TextBlock Margin="2,10,0,0" Text="{Binding Contact}" /> 
      </StackPanel> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

-Code hinter:

public sealed partial class MainPage : Page 
{ 
    ... 
    private void btngetdata_Click(object sender, RoutedEventArgs e) 
    { 
     ListCustomer.ItemsSource = SQLiteHelp.getValues(); 
    } 
} 

public class SQLiteHelp 
{ 
    private static string DbName = "Sun.db";  
    public static ObservableCollection<Customer> getValues() 
    { 
     ObservableCollection<Customer> list = new ObservableCollection<Customer>(); 
     using (var connection = new SQLiteConnection(DbName)) 
     { 
      using (var statement = connection.Prepare(@"SELECT * FROM CUSTOMER;")) 
      { 
       while (statement.Step() == SQLiteResult.ROW) 
       { 
        list.Add(new Customer() 
        { 
         Id = Convert.ToInt32(statement[0]), 
         Name = (string)statement[1], 
         City = (string)statement[2], 
         Contact = statement[3].ToString() 
        }); 

        Debug.WriteLine(statement[0] + " ---" + statement[1] + " ---" + statement[2] + statement[3]); 
       } 
      } 
     } 
     return list; 
    } 

} 
public class Customer 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string City { get; set; } 
    public string Contact { get; set; } 
} 

Weitere Informationen erhalten Sie Referenz this guide die für SQLite-Datenbank in UWP ist. Und es gibt eine SQLite in UWP app sample, die Microsoft.Data.SQLite Paket verwenden, das Sie auch verweisen können.