致力于技术进步

专注于编程艺术

博客园 首页 新随笔 联系 订阅 管理

1. 一个有益的实验。
在Microsoft SQL Server Management Studio中建立一数据库查询。SQL语句如下:
select * from sys.databases
你会看到你需要的信息。现在估计该问题你已经知道怎么解决了,当然其中的道理估计你也明白,这里就不详述。

2. 一个实例。代码如下:

        public string ConnectionString
        ...{
            get
            ...{
                return "server = " + m_ServerName + "; uid = sa; pwd = sa";
            }
        }

       private void LoadCatalog()
        ...{
            this.cbCatalog.Items.Clear();
            if (Server.Equals(""))
            ...{
                MessageBox.Show("Please input server address");
                return;
            }
            string cmdStirng = "select name from sys.databases where database_id > 4";
            SqlConnection connect = new SqlConnection(ConnectionString);
            SqlCommand cmd = new SqlCommand(cmdStirng, connect);
            try
            ...{
                connect.Open();
                IDataReader dr = cmd.ExecuteReader();
                cbCatalog.Items.Clear();
                while (dr.Read())
                ...{
                    cbCatalog.Items.Add(dr["name"]);
                }
                dr.Close();
            }
            catch (SqlException except)
            ...{
                MessageBox.Show(this, except.Message);
            }
            finally
            ...{
                if (connect != null && connect.State == ConnectionState.Open)
                    connect.Dispose();
            }
        }

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bigbear802/archive/2008/04/24/2325006.aspx

 

 

 

 

//=======================================================================================

 

 

 

C# 如何获取已知SQL server 2000服务器上数据库列表

 

已经知道SQL   Server   2000   服务器,那想获取该服务器上的所有数据库并把它们在ComboBox显示出来要如何实现!!谢谢各位大师喽````呵呵`````
---------回复--------------
select   *   from   master..sysdatabases
---------回复--------------
use   master
go
select   name   from   sysdatabases
---------回复--------------
居然是同一秒...
---------回复--------------
应该是获取局域网中的所有   SQL   Server   服务器然后选定一个服务器并获取该服务器上的所有数据库并把它们在ComboBox显示出来要如何实现!!谢谢各位大师喽````呵呵`````
---------回复--------------
获取局域网中的所有   SQL   Server   服务器
    class   SqlLocator
        {
                [DllImport( "odbc32.dll ")]
                private   static   extern   short   SQLAllocHandle(short   hType,   IntPtr   inputHandle,   out   IntPtr   outputHandle);
                [DllImport( "odbc32.dll ")]
                private   static   extern   short   SQLSetEnvAttr(IntPtr   henv,   int   attribute,   IntPtr   valuePtr,   int   strLength);
                [DllImport( "odbc32.dll ")]
                private   static   extern   short   SQLFreeHandle(short   hType,   IntPtr   handle);
                [DllImport( "odbc32.dll ",   CharSet   =   CharSet.Ansi)]
                private   static   extern   short   SQLBrowseConnect(IntPtr   hconn,   StringBuilder   inString,
                short   inStringLength,   StringBuilder   outString,   short   outStringLength,
                out   short   outLengthNeeded);

                private   const   short   SQL_HANDLE_ENV   =   1;
                private   const   short   SQL_HANDLE_DBC   =   2;
                private   const   int   SQL_ATTR_ODBC_VERSION   =   200;
                private   const   int   SQL_OV_ODBC3   =   3;
                private   const   short   SQL_SUCCESS   =   0;
                private   const   short   SQL_NEED_DATA   =   99;
                private   const   short   DEFAULT_RESULT_SIZE   =   1024;
                private   const   string   SQL_DRIVER_STR   =   "DRIVER=SQL   SERVER ";
                private   SqlLocator()   {   }
                public   static   string[]   GetServers()
                {
                        string[]   retval   =   null;
                        string   txt   =   string.Empty;
                        IntPtr   henv   =   IntPtr.Zero;
                        IntPtr   hconn   =   IntPtr.Zero;
                        StringBuilder   inString   =   new   StringBuilder(SQL_DRIVER_STR);
                        StringBuilder   outString   =   new   StringBuilder(DEFAULT_RESULT_SIZE);
                        short   inStringLength   =   (short)inString.Length;
                        short   lenNeeded   =   0;
                        try
                        {
                                if   (SQL_SUCCESS   ==   SQLAllocHandle(SQL_HANDLE_ENV,   henv,   out   henv))
                                {
                                        if   (SQL_SUCCESS   ==   SQLSetEnvAttr(henv,   SQL_ATTR_ODBC_VERSION,   (IntPtr)SQL_OV_ODBC3,   0))
                                        {
                                                if   (SQL_SUCCESS   ==   SQLAllocHandle(SQL_HANDLE_DBC,   henv,   out   hconn))
                                                {
                                                        if   (SQL_NEED_DATA   ==   SQLBrowseConnect(hconn,   inString,   inStringLength,   outString,
                                                        DEFAULT_RESULT_SIZE,   out   lenNeeded))
                                                        {
                                                                if   (DEFAULT_RESULT_SIZE   <   lenNeeded)
                                                                {
                                                                        outString.Capacity   =   lenNeeded;
                                                                        if   (SQL_NEED_DATA   !=   SQLBrowseConnect(hconn,   inString,   inStringLength,   outString,
                                                                        lenNeeded,   out   lenNeeded))
                                                                        {
                                                                                throw   new   ApplicationException( "Unabled   to   aquire   SQL   Servers   from   ODBC   driver. ");
                                                                        }
                                                                }
                                                                txt   =   outString.ToString();
                                                                int   start   =   txt.IndexOf( "{ ")   +   1;
                                                                int   len   =   txt.IndexOf( "} ")   -   start;
                                                                if   ((start   >   0)   &&   (len   >   0))
                                                                {
                                                                        txt   =   txt.Substring(start,   len);
                                                                }
                                                                else
                                                                {
                                                                        txt   =   string.Empty;
                                                                }
                                                        }
                                                }
                                        }
                                }
                        }
                        catch   (Exception   ex)
                        {
                                //Throw   away   any   error   if   we   are   not   in   debug   mode
#if   (DEBUG)
                                MessageBox.Show(ex.Message,   "Acquire   SQL   Servier   List   Error ");
#endif
                                txt   =   string.Empty;
                        }
                        finally
                        {
                                if   (hconn   !=   IntPtr.Zero)
                                {
                                        SQLFreeHandle(SQL_HANDLE_DBC,   hconn);
                                }
                                if   (henv   !=   IntPtr.Zero)
                                {
                                        SQLFreeHandle(SQL_HANDLE_ENV,   hconn);
                                }
                        }

                        if   (txt.Length   >   0)
                        {
                                retval   =   txt.Split( ", ".ToCharArray());
                        }

                        return   retval;
                }
        }
---------回复--------------
给你一个源码,
样式:http://www.csharphelp.com/archives2/archive342.html
下载:http://www.csharphelp.com/archives2/files/archive342/SQLDMO.zip
---------回复--------------
SQLDMO.dll文件好像没有``所以无法运行`````````

posted on 2009-12-14 17:20  stephen&amp;#183;周  阅读(429)  评论(0编辑  收藏  举报