日期:2014-05-18  浏览次数:20764 次

C#里获取SQL Server Catalog的问题~
C#里有什么方法, 能获取SQL Server一个数据库里, 所有的Catalog吗?(就是获取所有的Database名字)

------解决方案--------------------
Select Name FROM Master..SysDatabases orDER BY Name
------解决方案--------------------
用数据库组件可以SQLDMO.dll
获取数据库服务器:
SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass();
SQLDMO.NameList sqlServers = null;
sqlServers = sqlApp.ListAvailableSQLServers();
for (int i = 0; i < sqlServers.Count; i++)
{
object srv = sqlServers.Item(i + 1);
if (srv != null)
{
this.comboBox1.Items.Add(srv);
}
}
数据表:
 SQLDMO.SQLServer svr = new SQLDMO.SQLServerClass();
this.comboBox2.Items.Clear();
string connection = "Data Source=" + this.comboBox1.SelectedItem.ToString() + ";uid=sa;Pwd=;";
SqlConnection conn = new SqlConnection(connection);
try
{
conn.Open();
conn.Close();
svr.Connect(this.comboBox1.SelectedItem.ToString(), "sa", "");
this.comboBox2.Items.Clear();
foreach (SQLDMO.Database db in svr.Databases)
{
comboBox2.Items.Add(db.Name);
}
}
catch
{
MessageBox.Show("未连接上服务器,请尝试重新连接");
}

------解决方案--------------------
select [name] from sysdatabases

连接master库