私はLiteDBに新規で、複数のクエリを一度に実行したいと考えています。LiteDB複数のクエリをC#で
私のデータベースで特定の顧客を検索できるようにしたいと思います。同様の名前の顧客が複数存在するため、すべてを返信して降順(Idまたは日付)の注文に並べ替えたいと思います。私は両方の機能が即興だが分離されているので、私はに検索とソートを組み合わせることを探していますに1つのクエリ。ここで
は、メインの検索機能である:ここで
private void search_btn_Click(object sender, RoutedEventArgs e)
{
using (var dataBase = new LiteDatabase(dbConnectionString))
{
// Stranka = Customer
var collection = dataBase.GetCollection<Stranka>("stranka");
// Search for a customer name whom I enter in the searchName_tb
var query = collection.Find(Query.Where("Ime_Priimek",
x => x.AsString.Contains(searchName_tb.Text)));
// Currently I'm doing everything with ListView, so I clear it
// to make room for resulting data to be shown
lvStranke.Items.Clear();
foreach (var customer in query)
{
lvStranke.Items.Add(customer);
}
}
}
は、彼らが/リフレッシュロードされますとき降順にソートの私のバージョンです:
public void LiteDB_ShowAll()
{
using (var dataBase = new LiteDatabase(dbConnectionString))
{
var collection = dataBase.GetCollection<Stranka>("stranka");
lvStranke.Items.Clear();
var count = collection.Count(Query.All());
// From last ID to first (Descending)
for (int i = count; i >= 1; i--)
{
lvStranke.Items.Add(collection.FindById(i));
}
}
}
私は削除機能を持っていますが、これまでのところ問題はありませんでしたが、LiteDB_ShowAllは基本的にデータベースの変更を更新してListViewに表示するだけです。これは最初のアプローチでしたが、私はそのコードを追加することもできます。それを改善する方法を模索しようとしています。返信を楽しみにして、答えをありがとう! – McBooley
@McBooley、私はあなたが私から何を期待しているかは分かりません。削除については、1)最大IDを持つ顧客を取得しない(最大IDよりも少ない)2)「FindById」から一部のIDに対してヌルを取得する(削除されたIDに対して) – SergGr