这个问题已经在这里有了答案 :
8年前关闭。
可能重复: SQL Server查询以查找所有当前数据库名称
我试图弄清楚如何在不首先指定数据库的情况下连接到服务器后列出数据库。
sqlConnection1 = new SqlConnection("Server=" + sqlServer + ";Database=" + database + ";User ID=" + userName + ";Password=" + password + ";Trusted_Connection=False;");
因此,基本上我想要的是最终用户连接到sql服务器,然后在下拉列表中填充可以连接和查询的数据库列表。
有想法吗?
您可以使用SqlConnection.GetSchema:
SqlConnection.GetSchema
using(var con = new SqlConnection("Data Source=Yourserver; Integrated Security=True;")) { con.Open(); DataTable databases = con.GetSchema("Databases"); foreach (DataRow database in databases.Rows) { String databaseName = database.Field<String>("database_name"); short dbID = database.Field<short>("dbid"); DateTime creationDate = database.Field<DateTime>("create_date"); } }
SQL Server架构集合(ADO.NET)
若要确定受支持的架构集合的列表,请不带任何参数或使用架构集合名称“ MetaDataCollections”来调用GetSchema方法。这将返回一个DataTable,其中包含受支持的模式集合的列表,它们各自支持的限制数量以及它们使用的标识符部分的数量。