我有一个问题,我无法自己解决。在我的getAlldata()
方法中,我需要返回我的集合kljenti
中的所有数据。我不知道我需要在我的方法声明和return语句中使用哪种数据类型。
我尝试了很多解决方案,但它们没有用。
public void getAllData () {
try {
var connectionString = "mongodb://172.16.1.24:27017";
var client = new MongoClient(connectionString);
var server = client.GetServer();
var database = server.GetDatabase("kljenti");
var Client = new MongoClient();
var DB = Client.GetDatabase("knjigoMata");
var kolekcija = DB.GetCollection<BsonDocument>("kljenti");
var allDocuments = kolekcija.Find(new BsonDocument()).ToListAsync();
foreach (var kljenti in allDocuments) {
Console.WriteLine(kljenti);
}
return allDocuments;
} catch {
MessageBox.Show("Nemogu prikazati podatke o korisnicima");
}
}
答案 0 :(得分:2)
我建议将klijenti表反序列化为c#对象。 1.创建一个代表klijenti表的类。例如:
public class Klijent
{
public string Name {get;set;}
public string Address {get;set;}
}
2。然后使用
List<Klijent> res = db.FindAs<Klijent>.ToList();
答案 1 :(得分:0)
ToListAsync()返回Task<List<BsonDocument>>
。因此,要使其工作,您必须等待任务完成,然后返回任务Result。
例如:
public List<BsonDocument> getAllData()
{
try
{
var connectionString = "mongodb://172.16.1.24:27017";
var client = new MongoClient(connectionString);
var server = client.GetServer();
var database = server.GetDatabase("kljenti");
var Client = new MongoClient();
var DB = Client.GetDatabase("knjigoMata");
var kolekcija = DB.GetCollection<BsonDocument>("kljenti");
Task<List<BsonDocument>> task = kolekcija.Find(new BsonDocument()).ToListAsync();
task.Wait();
List<BsonDocument> allDocuments = task.Result;
foreach (var kljenti in allDocuments)
{
Console.WriteLine(kljenti);
}
return allDocuments;
}
catch
{
MessageBox.Show("Nemogu prikazati podatke o korisnicima");
}
}