您的位置:首页 > 数据库

[转]C# 获取 SQL服务器列表

2013-01-08 21:08 351 查看
#region   得到所有本地网络中可使用的SQL服务器列表
///<summary>
///   得到所有本地网络中可使用的SQL服务器列表
///</summary>
///<param   name="p_strServerList">服务器列表</param>
///<returns></returns>
public   static   bool   GetServers(ref   string   []   p_strServerList)
{
try
{
SQLDMO.Application   sqlApp   =   new   SQLDMO.ApplicationClass();
SQLDMO.NameList   sqlServers   =   sqlApp.ListAvailableSQLServers();
if(sqlServers.Count   >   0)
{
p_strServerList   =   new   string[sqlServers.Count];
for(int   i=0;i<sqlServers.Count;i++)
{
string   srv   =   sqlServers.Item(i   +   1);
if(srv   !=   null)
{
p_strServerList[i]   =   srv;
}
}
}
return   true;
}
catch(Exception   ex)
{
throw   ex;
}
}

#endregion

#region   得到指定SQL服务器所有数据库的列表
///<summary>
///   得到指定SQL服务器所有数据库的列表
///</summary>
///<param   name="p_strDataBaseList">数据库列表</param>
///<param   name="p_strServer">服务器名</param>
///<param   name="p_strUser">用户名</param>
///<param   name="p_strPWD">密码</param>
///<returns></returns>
public   static   bool   GetDataBases(ref   string   []   p_strDataBaseList,   string   p_strServer,   string   p_strUser,   string   p_strPWD)
{
try
{
int   i   =   0;

SQLDMO.Application   sqlApp   =   new   SQLDMO.ApplicationClass();
SQLDMO.SQLServer   srv   =   new   SQLDMO.SQLServerClass();
srv.Connect(p_strServer,p_strUser,p_strPWD);

if(srv.Databases.Count   >   0)
{
p_strDataBaseList   =   new   string[srv.Databases.Count];

foreach(SQLDMO.Database   db   in   srv.Databases)
{
if(db.Name!=null)
{
p_strDataBaseList[i]   =   db.Name;
}
i   =   i   +   1;
}
}
return   true;
}
catch(Exception   ex)
{
throw   ex;
}
}

#endregion

#region   得到所有的存储过程
///<summary>
///   得到所有的存储过程
///</summary>
///<param   name="p_strProcedureList">存储过程列表</param>
///<param   name="p_strServer">服务器名</param>
///<param   name="p_strUser">用户名</param>
///<param   name="p_strPWD">密码</param>
///<param   name="p_strDataBase">数据库名</param>
///<returns></returns>
public   static   bool   GetProcedures(ref   string   []   p_strProcedureList,   string   p_strServer,   string   p_strUser,   string   p_strPWD,   string   p_strDataBase)
{
try
{
SQLDMO.SQLServer   srv   =   new   SQLDMO.SQLServerClass();
srv.Connect(p_strServer,p_strUser,p_strPWD);

for(int   i=0;i<srv.Databases.Count;i++)
{
if(srv.Databases.Item(i+1,"dbo").Name   ==   p_strDataBase)
{
SQLDMO._Database   db=   srv.Databases.Item(i+1,"dbo");
if   (db.StoredProcedures.Count   >   0)
{
p_strProcedureList   =   new   string[db.StoredProcedures.Count];

for(int   j=0;j<db.StoredProcedures.Count;j++)
{
p_strProcedureList[j]   =   db.StoredProcedures.Item(j+1,"dbo").Name;
}
break;
}
}
}

return   true;
}
catch(Exception   ex)
{
throw   ex;
}
}
#endregion

#region   得到所有的Tables集合
///<summary>
///   得到所有的Tables集合
///</summary>
///<param   name="p_strProcedureList">Tables集合</param>
///<param   name="p_strServer">服务器名</param>
///<param   name="p_strUser">用户名</param>
///<param   name="p_strPWD">密码</param>
///<param   name="p_strDataBase">数据库名</param>
///<returns></returns>
public   static   bool   GetTables(ref   string   []   p_strTableList,   string   p_strServer,   string   p_strUser,   string   p_strPWD,   string   p_strDataBase)
{
try
{
SQLDMO.SQLServer   srv   =   new   SQLDMO.SQLServerClass();
srv.Connect(p_strServer,p_strUser,p_strPWD);

for(int   i=0;i<srv.Databases.Count;i++)
{
if(srv.Databases.Item(i+1,"dbo").Name   ==   p_strDataBase)
{
SQLDMO._Database   db=   srv.Databases.Item(i+1,"dbo");
if   (db.Tables.Count   >   0)
{
p_strTableList   =   new   string[db.Tables.Count];

for(int   j=0;j<db.Tables.Count;j++)
{
p_strTableList[j]   =   db.Tables.Item(j+1,"dbo").Name;
}
break;
}
}
}

return   true;
}
catch(Exception   ex)
{
throw   ex;
}
}
#endregion

#region   得到所有的Views集合
///<summary>
///   得到所有的Views集合
///</summary>
///<param   name="p_strProcedureList">Views集合</param>
///<param   name="p_strServer">服务器名</param>
///<param   name="p_strUser">用户名</param>
///<param   name="p_strPWD">密码</param>
///<param   name="p_strDataBase">数据库名</param>
///<returns></returns>
public   static   bool   GetViews(ref   string   []   p_strViewList,   string   p_strServer,   string   p_strUser,   string   p_strPWD,   string   p_strDataBase)
{
try
{
SQLDMO.SQLServer   srv   =   new   SQLDMO.SQLServerClass();
srv.Connect(p_strServer,p_strUser,p_strPWD);

for(int   i=0;i<srv.Databases.Count;i++)
{
if(srv.Databases.Item(i+1,"dbo").Name   ==   p_strDataBase)
{
SQLDMO._Database   db=   srv.Databases.Item(i+1,"dbo");
if   (db.Views.Count   >   0)
{
p_strViewList   =   new   string[db.Views.Count];

for(int   j=0;j<db.Views.Count;j++)
{
p_strViewList[j]   =   db.Views.Item(j+1,"dbo").Name;
}
break;
}
}
}

return   true;
}
catch(Exception   ex)
{
throw   ex;
}
}
#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: