我正在尝试使用存储在文本框中的文本来过滤MongoDB数据库。例如,我将放置“ turtle”,所有具有“ Name”“ turtle”的条目将出现在datagridview中。
这是连接到MongoDB数据库,获取数据库名称和“用户”集合并应用文本框txtName中任何内容的过滤器的按钮的代码。
private void btnSearch_Click(object sender, EventArgs e)
{
var client = new MongoClient("mongodb://localhost");
var database = client.GetDatabase("test");
var collection = database.GetCollection<BsonDocument>("users");
var filter = Builders<BsonDocument>.Filter.Eq("Name", txtName.Text);
}
我不确定下一步要去哪里。然后,我需要将所有数据绑定到datagridviews数据源中,以匹配名称为turtle的记录。
dgvAll.DataSource = somevariable;
谢谢
从数据库中获取数据
var results = collection.Find(filter).ToList();
这将为您提供绑定对象的列表,就像您绑定另一个其他集合一样。
您可能需要研究强类型化的模型,而不是使用文本查询。例如
public class MyModel
{
public string SomeProperty { get; set; }
public string SomeOtherProperty { get; set; }
}
当你查询
private void btnSearch_Click(object sender, EventArgs e)
{
var client = new MongoClient("mongodb://localhost");
var database = client.GetDatabase("test");
var collection = database.GetCollection<MyModel>("users");
var filter = Builders<MyModel>.Filter.Eq(x => x.SomeProperty == "SomeValue" && x.SomeOtherProperty == "SomeOtherValue");
var results = collection.Find(filter).ToList();
//Now you will have a list of MyModel objects in results - List<MyModel>
}
一旦有了您的收藏集(无论采用哪种方式将其从数据库中取出),您都可以像这样进行绑定:
dgvAll.DataSource = results;
dgvAll.DataBind();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句