zoukankan      html  css  js  c++  java
  • C#_获取 SQL服务器列表

    #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


  • 相关阅读:
    程序员兄弟们,我们的基本素质怎么样?
    从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常
    在SQLServer 2005附加SQLServer 2008数据库异常处理
    大型企业如何搭建私有云计算平台
    GIS在石油行业中的应用
    win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程
    三维空间数据模型及结构
    oracle适配器连接不上解决方案
    单态设计模式
    java实现排序的几种方法
  • 原文地址:https://www.cnblogs.com/szytwo/p/2263742.html
Copyright © 2011-2022 走看看