0
Ich habe Probleme beim Erstellen einer bedingten Abfrage mit C# MongoDB-Treiber. Wenn ich den Code unten ausführe, erhalte ich eine leere Liste. Jede Hilfe wird sehr geschätzt.Erstellen einer bedingten Abfrage in MongoDB C#
Hier ist meine Funktion
public async void searchBook()
{
Book book = new Book();
IMongoDatabase mdb = MongoDBConnectionManager.ConnectToMongoDB();
var query = new BsonDocument();
if (queryString.ContainsKey("Title"))
{
query.Add("Title", queryString["Title"]);
}
if (queryString.ContainsKey("ISBN"))
{
query.Add("Isbn", queryString["ISBN"]);
}
if (queryString.ContainsKey("Author"))
{
query.Add("Author", queryString["Author"]);
}
if (queryString.ContainsKey("Publisher"))
{
query.Add("Publisher", queryString["Publisher"]);
}
var collection = mdb.GetCollection<Book>("Book");
var sort = Builders<Book>.Sort.Ascending("Title");
if(query.ElementCount > 0)
{
var list = await collection.Find(query).Sort(sort).ToListAsync();
dt = ConvertToDataTable(list);
BindGridView(dt);
}
else
{
var list = await collection.Find(Builders<Book>.Filter.Empty).Sort(sort).ToListAsync();
dt = ConvertToDataTable(list);
BindGridView(dt);
}
}
was passiert, wenn Sie tatsächlich Schritt durch den Code der Debugger ..? Was sind die Werte des 'queryString'? Kannst du uns das wenigstens zeigen? Sie können auch die if-Bedingungsanweisung in eine switch() {case} -Anweisung konvertieren. Sie müssen mehr Informationen bereitstellen. – MethodMan