步骤:1 . 引用 microsoft SQLDMO object liabiry
2. 添加如下代码:
//get all available SQL Servers
List<string> server = new List<string>();
SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass();
SQLDMO.NameList sqlServers = sqlApp.ListAvailableSQLServers();
for (int i = 1; i < sqlServers.Count; i++)
{
object srv = sqlServers.Item(i);
if (srv != null)
{
server.Add(srv.ToString());
}
}
List<string> Database = new List<string>();
foreach (string everyServer in server)
{
SQLDMO.SQLServer serv = new SQLDMO.SQLServerClass();
serv.Connect(everyServer, "sa", "123");
//get all available databases from an SQL Server
foreach (SQLDMO.Database db in serv.Databases)
{
if (db.Name != null)
Database.Add(db.Name);
}
}
//Get all Stored procedures - tables are in the Tables collection, views are in the Views collection
SQLDMO.SQLServer srv = new SQLDMO.SQLServerClass();
srv.Connect(this.cboServers.SelectedItem.ToString(),this.txtUser.Text,this.txtPassword.Text);
for(int i=0;i<srv.Databases.Count;i++)
{
if(srv.Databases.Item(i+1,"dbo").Name == this.cboDatabase.SelectedItem.ToString())
{
SQLDMO._Database db= srv.Databases.Item(i+1,"dbo");
this.lstObjects.Items.Clear();
for(int j=0;j<db.StoredProcedures.Count;j++)
{
this.lstObjects.Items.Add(db.StoredProcedures.Item(j+1,"dbo").Name);
}
break;
}
以下是调用windows的api获取sql服务名称的方法:
/// <summary>
/// 获取网内的数据库服务器名称
/// </summary>
public class SqlLocator
{