将SQLite数据填充到UWP App

时间:2017-04-04 14:21:50

标签: c# xaml sqlite uwp

我想将SQLite数据填充到我的应用程序中。

让我们说我已经创建了一个应用程序来记录有关足球比赛的详细信息。 我有3个TextBox(teamName,goalScored,goalConceded)和一个用于将这些值插入DataBase的按钮。 还可以说我已经在db上插入了详细信息。

我想要的是将这些数据/详细信息从数据库填充到我的应用程序中的ListView(在XAML中定义)。

2 个答案:

答案 0 :(得分:1)

将ListView绑定到ViewModel属性(通常是ObservableCollection)。 然后在插入后只更新ObservableCollection数据。

答案 1 :(得分:0)

  

我想要的是将这些数据/详细信息从数据库填充到我的应用程序中的ListView(在XAML中定义)。

首先,您需要根据您的要求从数据库中查询数据。有关如何获取数据取决于您用于UWP应用程序的SQLite Nuget包。其次,您可能需要将数据读取到源集合,可能是ObservableCollection,因为@IonCaisîn说。这里最好的做法是拥有实体,为表数据构建模型。最后将源绑定到ListView

以下是一个关于从SQLite数据库读取数据并将数据绑定到ListView的简单演示。我正在使用SQLitePCL Nuget包。

XAML代码:

<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>

代码背后:

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; }
}

更多详情请参阅UWP中针对SQLite本地数据库的this guide。还有SQLite in UWP app sample使用Microsoft.Data.SQLite包,您也可以参考。