`
hred
  • 浏览: 44842 次
  • 性别: 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中的核心组件之...

    关于.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注入攻击。 在实际项目...

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

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

    .net 连接mysql数据库源代码

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

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

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

    .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管理MySQL数据库的小工具_aspx开发教程.rar

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

    ADO.NET对象模型访问数据库

    ADO.NET对象模型是微软.NET框架中的一个核心组件,主要用于访问关系型数据库,如SQL Server、Oracle、MySQL等。它提供了一套丰富的类库,使得开发者能够高效、灵活地进行数据操作。下面将详细阐述ADO.NET对象模型的...

    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 ...

    ASP.NET通用数据库访问组件

    ASP.NET通用数据库访问组件是一种软件开发工具,它提供了一种标准化的方法来访问各种类型的数据库,如MSSQL(Microsoft SQL Server)、MYSQL(MySQL Server)、ORACLE(Oracle Database)和ACCESS(Microsoft Access...

    【ASP.NET编程知识】.NET Core Dapper操作mysql数据库的实现方法.docx

    ".NET Core Dapper 操作 mysql 数据库的实现方法" 标题:"ASP.NET 编程知识" 描述:"本文将介绍如何在 .NET Core 中使用 Dapper 操作 Mysql 数据库的实现方法" 标签:"asp.net 编程语言 mysql 数据库" 知识点: 一...

    .net 数据库访问组件源码及Demo

    在.NET框架中,数据库访问是开发过程中的重要环节,它涉及到如何与各种数据库进行交互,如SQL Server、MySQL、Oracle等。本资源包提供了一套.NET数据库访问组件的源码和示例(Demo),这对于开发者来说是宝贵的参考...

    .Net/C#连接Mysql数据库Connector/Net MySql.Data.dll 8.20.0+6.9.12

    C#通过MySql.Data.dll连接MySql数据库 在项目中引用组件:MySql.Data.dll (记得复制到本地中选择为true / 或直接把MySql.Data.dll复制到debug文件夹下) 在代码中 using MySql.Data.MySqlClient; ......接下来这里...

Global site tag (gtag.js) - Google Analytics