我使用以下方式获取数据库名称:
SqlDataSourceEnumerator sdse = SqlDataSourceEnumerator.Instance;
DataTable table = sdse.GetDataSources();
然后使用下面的内容我得到了数据库列表。
static void Main(string[] args)
{
{
//Connect to the local, default instance of SQL Server.
Server srv;
srv = new Server("LAPTOP\\SQLEXPRESS");
//The connection is established when a property is requested.
Console.WriteLine(srv.Databases.ToString());
foreach (Database db in srv.Databases)
{
Console.WriteLine(db);
}
Console.ReadLine();
}
}
问题是我只获得系统数据库,没有其他数据库,即使它们存在。我不知道要更改什么才能获取所有数据库的信息。任何帮助将不胜感激。
最佳答案
虽然已经很晚了,但我刚刚按照您的要求没有回答您的问题。为什么不尝试一下这段代码片段:
Server srvMgmtServer = default(Server);
srvMgmtServer = new Server("LAPTOP\\SQLEXPRESS");
ServerConnection srvConn = default(ServerConnection);
srvConn = srvMgmtServer.ConnectionContext;
srvConn.LoginSecure = true;
foreach(Database db in srvMgmtServer.Databases;
{
Console.WriteLine(db.Name);
}
关于c# - 使用 SMO 检索 SQL Server、数据库、表信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13015220/