赞
踩
这篇文章将讲解如何使用C#连接MongoDB数据库,并且读取里面的文档。
新建控制台程序,命名为 “MongoDBDemo”
安装完成以后,查看项目的引用,发现 MongoDB 使用到的几个 dll 文件都已经添加到引用中。
using System;
using System.Threading.Tasks;
using MongoDB.Driver;
using MongoDB.Bson;
namespace MongoDBDemo
{
class Program
{
protected static IMongoClient _client;
protected static IMongoDatabase _database;
static void Main(string[] args)
{
// 数据库名称
string strCon = "mongodb://127.0.0.1:27017/bianchengbang";
var mongoUrl = new MongoUrlBuilder(strCon);
string databaseName = mongoUrl.DatabaseName;
_client = new MongoClient(mongoUrl.ToMongoUrl());
_database = _client.GetDatabase(databaseName);
const string collectionName = "user"; // 集合名称
var collection = _database.GetCollection<BsonDocument>(collectionName);
var filter = new BsonDocument();
var list = Task.Run(async () => await collection.Find(filter).ToListAsync()).Result;
list.ForEach(p =>
{
Console.WriteLine("姓名:" + p["name"].ToString() + ",电话:" + p["phone"].ToString());
});
Console.ReadKey();
}
}
}
(1)在配置文件中添加 MongoDB 数据库的连接字符串
代码:
using System;
using System.Threading.Tasks;
using MongoDB.Driver;
using MongoDB.Bson;
using System.Configuration;
namespace MongoDBDemo
{
class Program
{
protected static IMongoClient _client;
protected static IMongoDatabase _database;
static void Main(string[] args)
{
// 数据库名称
string strCon = ConfigurationManager.ConnectionStrings["mongodbConn"].ConnectionString;
var mongoUrl = new MongoUrlBuilder(strCon);
string databaseName = mongoUrl.DatabaseName;
_client = new MongoClient(mongoUrl.ToMongoUrl());
_database = _client.GetDatabase(databaseName);
const string collectionName = "user"; // 集合名称
var collection = _database.GetCollection<BsonDocument>(collectionName);
var filter = new BsonDocument();
var list = Task.Run(async () => await collection.Find(filter).ToListAsync()).Result;
list.ForEach(p =>
{
Console.WriteLine("姓名:" + p["name"].ToString() + ",电话:" + p["phone"].ToString());
});
Console.ReadKey();
}
}
}
vshost.exe.config 是程序运行时的配置文本。
exe.config 是程序运行后会复制到 vshost.exe.config。
app.config 是在 vshost.exe.config 和 exe.config 没有情况起作用,从 app.config 复制到 exe.config 再复制到 vshost.exe.config。
写配置文件都是写到 exe.config 文件中了,app.config 不会变化。
app.config 只在 exe.config 丢失的情况下在开发环境中重新加载 app.config,vshost.exe.config 和 exe.config 会自动创建内容跟 app.config 一样。
vshost.exe.config 和 app.config 两个文件可不要,但 exe.config 文件不可少。
App.config与MongoDBDemo.exe.config内容相同:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="mongodbConn" connectionString="mongodb://127.0.0.1:27017/bianchengbang"/>
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
如果带账号密码则为下图所示:
appSettings:主要存储程序设置,以键值对的形式出现。
修改 appSettings 之前
未 Save,dll.config 配置的 user 是 888
代码中修改 appSettings 之后
没有调用 Save,dll.config 配置中的 user 还是 888。
Save 写之后,dll.config 配置【不是 App.config】的 user 修改为 999。【App.config 并没有改变】
connectionStrings:由于保存数据连接字符串。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。