首页 > 解决方案 > 将mongodb数据转换为gridview

问题描述

如何在gridview中显示表格?数据是从 mongodb 检索的,这个特定的表由一些字段内的多个表组成。

var collection = mongoDatabase.GetCollection<BsonDocument>("ABC");            
var query = collection.AsQueryable().Take(10).ToList();   
IEnumerable<BsonDocument> allUsers = 
BsonSerializer.Deserialize<IEnumerable<BsonDocument>>(query);-----//shows cant convert collection.generic.list to bsondocument. 

或者我也试过这个..

var collection = mongoDatabase.GetCollection<BsonDocument>("ABC");          
var query = collection.AsQueryable().Take(10).ToList();  
DataTable dt = (DataTable)MongoDB.Bson.IO.JsonConvert.DeserializeObject(query, (typeof(DataTable))); ---//jsonconvert doesnot have deserializeobject 

标签: c#mongodbasp.net-web-apimongodb-queryaggregation-framework

解决方案


您在尝试将 IList 反序列化为 Json 时做错了,您可以将列表序列化为 JSON,反之亦然。您已经有一个对象列表,因此您不需要进行反序列化。您可以尝试使用此列表构建您的 DataTable

“var query = collection.AsQueryable().Take(10).ToList();”

Datatable 的构造看起来像这样;

DataTable dt = new DataTable();

dt.Columns.Add("Column1");
dt.Columns.Add("Column2");
dt.Columns.Add("Column3");
foreach (var item in query)
{
    var row = dt.NewRow();

    row["Column1"] = item.Column1;
    row["Column2"] = item.Column2;
    row["Column3"] = item.Column3;

    dt.Rows.Add(row);
}

return dt;

推荐阅读