2017-04-04 8 views
1

私のアプリケーションにSQLiteデータを取り込みたいと思います。SQLiteデータをUWP Appに取り込みます

私は、サッカーの試合の詳細を記録するアプリを作成したと言います。 私は3つのTextBox(teamName、goalScored、goalConceded)と、これらの値をデータベースに挿入するボタンを持っています。 また、詳細をdbに挿入したとします。

私が欲しいのは、データベースのこれらのデータ/詳細を、アプリケーションのListView(XAMLで定義)に挿入することです。

+0

問題をより具体的に特定し、これまでに試したことの例を示す必要があります。一般的に、SOはそれほど広い質問にはうまく対応しません。これまでに実装したすべての言語とプロセスにコードを投稿してください。 –

+0

これまでにDBからデータを取得してUIに表示しようとしたことはありますか? [MCVE]をお読みください – AVK

答えて

1

リストビューをViewModelプロパティ(通常ObservableCollection)にバインドします。 挿入した後、ObservableCollectionデータを更新してください。

0

私が欲しいのは、私のアプリケーションのListView(XAMLで定義)にデータベースからこれらのデータ/詳細を取り込むことです。

まず、要件に応じてデータベースからデータをクエリする必要があります。 UWPアプリケーション用に使用しているSQLite Nugetパッケージに依存してデータを取得する方法については、第二に、@ IonCaisînが言ったように、ソースコレクションへのデータを読む必要があるかもしれませんが、ObservableCollectionかもしれません。ここでは、エンティティを持ち、テーブルデータのモデルを構築するのがベストプラクティスです。最後に、ソースを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を参照してください。そしてMicrosoft.Data.SQLiteパッケージを使用するSQLite in UWP app sampleパッケージがあります。

関連する問題