2016-05-10 1 views
0

ich eine Liste haben füllen:Wie man eine Liste von Ergebnissen der SQLite-Abfrage in Universal-Windows-App

public class DateAmountList 
    { 
     public string Date { get; set; } 
     public int Amount { get; set; } 
    } 

List<DateAmountList> itemsList1 = new List<DateAmountList>(); 

Ich habe eine SQLite-Abfrage:

var getmonthsquery = "SELECT Date, SUM(Amount) FROM incomeamounts GROUP BY Date"; 

Das Ergebnis sieht aus wie man es erwarten würde für die Abfrage, so etwas wie:

Jan, 200 
Feb, 250 
Mar, 700 

etc ...

Ich bin mir nicht sicher, warum in Windows Universal Apps, aber sqliteDataReader ist nicht verfügbar, obwohl ich das nuget-Paket installiert habe, also möchte ich eine alternative Möglichkeit, die Liste mit den Abfrageergebnissen und den besten Weg zu füllen 'Ausführen' der Abfrage

Antwort

0

Ich möchte eine alternative Möglichkeit, die Liste mit den Abfrageergebnissen aufzufüllen und auch die beste Möglichkeit zum Ausführen der Abfrage.

Ich verwende SQLite.Net-PCL-implement SQLite Local Storage in Universal Windows App:

// get the total amount for each date 
public static List<DateAmountList> GetTotalAmount() 
{ 
    List<DateAmountList> results = new List<DateAmountList>(); 
    using (SQLite.Net.SQLiteConnection conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), DBPath)) 
    { 
     results = conn.Query<DateAmountList>("SELECT Date, SUM(Amount) AS 'Amount' FROM DateAmountList GROUP BY Date"); 
    } 
    return results; 
} 

Hier ist die entire sample für Ihre Referenz, und im Anschluss an die Ausgabe:

enter image description here

+0

hat es funktioniert wie vorgeschlagen mit dem SQLite.Net-PLC-Paket, einfacher, wenn Sie wissen, welches Paket zu verwenden ist! Wenn ich dies an eine Chart-Serie binden wollte, würde ich es genauso machen, wie Sie über xaml an die ListView gebunden haben, oder würden Sie den Code dahinter empfehlen? Vielen Dank – TexMoonbeam

0

Ich denke, wenn Sie lieber mit Abfragen direkt arbeiten möchten, sollten Sie sich SQLitePCL Bibliothek ansehen. QUERY und eine Liste bevölkern ist ziemlich einfach:

var results = new List<DateAmountList>(); 

using (var statement = this.connection.Prepare(
    "SELECT Date, SUM(Amount) FROM incomeamounts GROUP BY Date")) 
{ 
    while (statement.Step() == SQLiteResult.ROW) 
    { 
     var dateAmount = new DateAmountList 
     { 
      Date = DateFromInternalValue(statement[0]),  // This depends on what format you use to store your date 
      Amount = (long)statement[1],     // Could also be: Amount = statement.GetInteger(1), 
     }; 

     results.Add(dateAmount); 
    } 
} 

Here are more samples von mit SQLitePCL arbeiten.

Als gegensätzlicher Ansatz können Sie versuchen sqlite-net und erhalten Sie schöne LINQ-ähnliche Syntax für die Arbeit mit Ihrer SQLite-Datenbank.

+0

es ist ein bisschen wie ein Minenfeld versucht, finden Sie das richtige nugget-Paket, also vielen Dank für Ihre Vorschläge und Beispiel – TexMoonbeam

Verwandte Themen