`
hred
  • 浏览: 45579 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

.net 获得 MSSQL Server 数据库列表

阅读更多
方法一:通过Microsoft.SQLDMO.Object组件就可以轻松完成此项工作:
首先如何找到Microsoft.SQLDMO.Object
1.如何在您得项目中能够使用SQLDMO组件?
菜单-项目-添加引用-COM-Microsoft.SQLDMO.Object

2.将该功能写成一个类:

using System;
using System.Collections;
using System.Collections.Specialized;

namespace JillZhang
{
    /**//// <summary>
    /// Summary description for SqlInfo.
    /// </summary>
    public class SqlInfo
    {
        成员变量#region 成员变量
        private string _uid="";
        private string _pwd="";
        private StringCollection _serverList=new StringCollection();
        private Hashtable _databaseList=new Hashtable();
        #endregion

        构造函数#region 构造函数
        public SqlInfo()
        {
            this._serverList=GetSqlInstances();    
            if(this._serverList.Count>0)
            {
                foreach(string item in this._serverList)
                {
                    this._databaseList.Add(item,this.GetAllDatabases(item));
                }
            }
        }
        public SqlInfo(string uid,string pwd)
        {
            this._uid=uid;
            this._pwd=pwd;
            this._serverList=GetSqlInstances();    
            if(this._serverList.Count>0)
            {
                foreach(string item in this._serverList)
                {
                    this._databaseList.Add(item,this.GetAllDatabases(item));
                }
            }
        }
        #endregion

        公共属性#region 公共属性
        /**//// <summary>
        /// 服务列表
        /// </summary>
        public StringCollection ServerList
        {
            get
            {
                return _serverList;
            }
        }
        /**//// <summary>
        /// 用于登录Sql server得用户名
        /// </summary>
        public string Uid
        {
            get
            {
                return _uid;
            }
            set
            {
                _uid=value;
            }
        }
        /**//// <summary>
        /// 用于登录得密码
        /// </summary>
        public string Pwd
        {
            get
            {
                return _pwd;
            }
            set
            {
                _pwd=value;
            }
        }
        #endregion

        事件方法#region 事件方法
        /**//// <summary>
        /// 获得服务列表
        /// </summary>
        /// <returns></returns>
        public static System.Collections.Specialized.StringCollection GetSqlInstances()
        {
            //声明一个字符串链表,用于存放列表信息
            System.Collections.Specialized.StringCollection instaces= new System.Collections.Specialized.StringCollection();
            try
            {
                //以下代码是通过调用SQLDMO组件来实现获得服务列表
                SQLDMO.Application sqlApplication= new SQLDMO.ApplicationClass();
                SQLDMO.NameList sqlServerIntances=sqlApplication.ListAvailableSQLServers();
                for(int i=0;i<sqlServerIntances.Count;i++)
                {
                    object svr=sqlServerIntances.Item(i+1);//索引从1开始
                    if(svr!=null)
                    {
                        instaces.Add(svr.ToString());
                    }
                }
                return instaces;
            }
            catch
            {
                throw new Exception("未能获得Server得列表信息,请查看您得Sql server是否正在运行!");
            }
        }

        /**//// <summary>
        /// 获得Sqlserver 2000一个Server Instance上得数据库列表
        /// </summary>
        /// <param name="server">服务名称</param>
        /// <param name="uid">登录用户</param>
        /// <param name="pwd">登录密码</param>
        /// <returns>数据库列表</returns>
        public static System.Collections.Specialized.StringCollection GetAllDatabases(string server,string uid,string pwd)
        {
            System.Collections.Specialized.StringCollection databases= new System.Collections.Specialized.StringCollection();
            try
            {
                SQLDMO.SQLServer sqlServer =new  SQLDMO.SQLServerClass();
                sqlServer.Connect(server,uid,pwd);
                foreach(SQLDMO.Database db in sqlServer.Databases)
                {
                    if(db.Name!=null)
                    {
                        databases.Add(db.Name);
                    }
                }
                return databases;
            }
            catch
            {
                throw new Exception("未能获得服务"+server+"上得数据库列表,可能您得服务器没有启动或者您得用户名或密码错误");
            }
        }
        public System.Collections.Specialized.StringCollection GetAllDatabases(string server)
        {
            return GetAllDatabases(server,this._uid,this._pwd);
        }
        #endregion
        
    }
}



方法二:运行SQL语句

select name from master..sysdatabases order by name asc

SqlConnection conn = new SqlConnection(connstr);
SqlDataReader dr;
SqlCommand comm = new SqlCommand("select name from master..sysdatabases order by name asc", connection);
conn.Open();
conn.ChangeDatabase("master");
dr = comm.ExecuteReader();

分享到:
评论

相关推荐

    ADO.NET C# 连接MySQL数据库的类库 非常好用的哦!

    ADO.NET是Microsoft开发的一种数据访问技术,用于与各种数据库进行交互,包括MySQL。在C#编程环境中,ADO.NET提供了一套完整的类库,使得开发者能够方便地创建、管理和执行SQL语句,以及处理数据库连接。在本例中,...

    ADO.NET 连接sql server数据库

    在本场景中,我们将深入探讨如何使用ADO.NET通过C#语言连接到SQL Server数据库,并利用app.config文件进行外部配置。 首先,为了连接SQL Server数据库,我们需要使用`SqlConnection`类,它是ADO.NET中的核心组件之...

    ASP.NET连接mysql

    描述:ASP.NET连接mysql数据库实例 知识点详解: 1. **MySQL在企业级应用中的地位**: MySQL作为一种开源数据库系统,因其高性能、稳定性及丰富的功能,已经成为众多大型企业如Google、美联社(The Associated ...

    关于.NET连接Mysql数据库的底层类实例和MySql.Data.dll

    在.NET框架中,连接MySQL数据库通常涉及到使用MySQL的数据提供者——`MySql.Data.dll`库。这个库由Oracle公司提供,允许.NET开发者通过C#等语言与MySQL服务器进行交互。`MySql.Data.dll`提供了丰富的类和方法,使得...

    .net 2008 连接mysql 数据库驱动及例子

    在.NET 2008开发环境中,连接MySQL数据库通常需要借助特定的数据提供程序,即MySQL Data Provider for .NET。本文将详细介绍如何使用该驱动以及提供一个示例代码,帮助开发者理解并实现.NET 2008与MySQL之间的数据...

    ASP.NET调用mySql数据库的类库

    ASP.NET调用MySQL数据库是将.NET框架的ASP.NET应用程序与MySQL数据库进行交互的过程。这个过程通常涉及使用ADO.NET数据提供程序、ODBC或OLE DB连接,或者使用第三方库如MySql.Data.dll。以下是对这个主题的详细阐述...

    C# .net连接mysql数据库的方法大全

    本篇文章将详细阐述C# .NET连接MySQL数据库的三种主要方法,以及所需的文件和配置。 一、使用MySQL Connector/NET MySQL Connector/NET是MySQL官方提供的.NET数据提供程序,它允许C#应用直接与MySQL数据库进行通信...

    .net连接MYSQL驱动类

    在.NET开发环境中,与MySQL数据库进行交互通常需要借助特定的驱动程序,这使得应用程序能够执行SQL语句、读取数据以及管理数据库。标题提到的".net连接MYSQL驱动类"主要涉及两个关键的驱动类,它们是.NET Framework...

    asp.net 的mysql数据库操作类

    这个MySQLHelper类可以帮助开发者快速地集成MySQL数据库到ASP.NET应用中,减少重复的数据库连接和关闭代码,提高代码的可读性和可维护性。同时,为了提高安全性,建议使用参数化查询,避免SQL注入攻击。 在实际项目...

    C# Ado.net实现读取SQLServer数据库存储过程列表及参数信息示例

    C# Ado.net实现读取SQLServer数据库存储过程列表及参数信息示例 本文主要介绍了使用C# Ado.net实现读取SQL Server数据库存储过程列表及参数信息的方法,通过实例形式总结分析了C#针对SQL Server数据库存储过程及...

    asp.net交互式web数据库程序设计

    ADO.NET提供了一组丰富的类,允许开发者高效地存取和管理各种类型的数据库,如SQL Server、Oracle、MySQL等。数据库连接、命令执行、数据读取等操作都可以通过这些类完成。 首先,我们需要理解ASP.NET中的页面生命...

    彻底解决C# asp.net连接MySQL乱码问题

    本文将详细介绍如何彻底解决使用C# ASP.NET 应用程序连接 MySQL 数据库时出现的乱码问题。 #### 一、问题背景与分析 在开发基于 C# ASP.NET 的应用程序时,如果涉及到 MySQL 数据库的使用,可能会遇到中文字符显示...

    .net 连接mysql数据库源代码

    在.NET框架中,连接MySQL数据库通常需要借助于MySQL的数据提供者——MySQL Data Provider for .NET。这个库使得.NET应用程序能够方便地与MySQL数据库进行交互。VS2005(Visual Studio 2005)是.NET开发的重要工具,...

    .NET MySql数据库驱动

    .NET框架与MySQL数据库之间的交互主要依赖于特定的数据库驱动,这就是所谓的".NET MySql数据库驱动"。这个驱动程序允许开发者在C#、VB.NET或其他.NET支持的语言中编写代码,以执行SQL查询、操作数据以及管理MySQL...

    .net访问mysql数据库必须的文件MySql.Data.dll(2019-03最新版 v8.0.15.0)

    .NET框架中的C#开发者在与MySQL数据库交互时,通常会依赖于特定的库来实现连接、查询和其他数据库操作。在本场景中,`MySql.Data.dll`是一个关键组件,它是MySQL针对.NET平台提供的官方驱动程序,名为“MySQL ...

    asp.net配置web.config数据库连接

    例如,对于SQL Server数据库,一个典型的连接字符串可能如下所示: ```xml connectionString="Data Source=yourServerName;Initial Catalog=yourDatabaseName;User ID=yourUsername;Password=yourPassword;" ...

    ASP.NET管理MySQL数据库的小工具_aspx开发教程.rar

    在本教程中,我们将探讨如何使用ASP.NET来管理MySQL数据库,这是一个常见的需求,特别是在跨平台或开源环境中。 首先,我们需要安装必要的组件。ASP.NET开发通常在Visual Studio中进行,而MySQL数据库则需要MySQL ...

    浅谈使用ADO.NET和ASP.NET访问SQL Server数据库.pdf

    由于提供的【部分内容】中大部分内容均为乱码,无法从中提取出有意义的IT知识点,但是根据标题“浅谈使用***和***访问SQL Server数据库.pdf”和【描述】中的重复标题,我们可以推断出本文档的主要内容。以下将围绕**...

    如何在.NET中访问MySQL数据库

    它设计得与Sql .NET Data Provider类似,方便了那些熟悉Sql Server数据库的开发者。使用MySQLDriverCS时,无需ODBC数据源,而是直接创建和配置MySQLConnection对象来连接数据库,然后通过MySQLCommand执行SQL语句。 ...

    EFcore连接本地Mysql数据库使用ASP.NET.CORE.API

    1.实现EFcore连接本地Mysql数据库 2.最新版本的ASP.NET.CORE.Web API 3.实现dbfrist和code 。 4.博客链接:https://blog.csdn.net/EAyayaya/article/details/124048491 5. 不是MVC方式 6.Entity Framework Core ...

Global site tag (gtag.js) - Google Analytics