返回语句

本文关键字:语句 返回 | 更新日期: 2023-09-27 18:25:12

我有一个自己无法解决的问题。在我的getAlldata()方法中,我需要返回集合kljenti中的所有数据。我不知道在方法声明和返回语句中需要使用什么类型的数据类型。我尝试了很多解决方案,但都不起作用。

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

返回语句

我建议将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. List是您要求的退货类型
在这种情况下,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");
    }
}