Blue Dream

记录成长的每一个脚印,写下漫长的程序人生
  首页  :: 订阅 订阅  :: 管理

在Asp.net中如何用SQLDMO来获取SQL Server中的对象信息

Posted on 2006-07-06 18:19  Dennis  阅读(174)  评论(0)    收藏  举报
Asp.net中如何用SQLDMO来获取SQL Server中的对象信息。首先我们想到的是所在的局域网内有多少SQL Server服务器,知道了服务器,有了登录的用户名和密码,就可以知道在指定的服务器上有多少张表,视图,存储过程,以及每张表中包含的字段信息等。

1.获取服务器的列表:

获取服务器时,主要是利用了SQLDMOApplication对象,该对象主要有以下几个主要的属性和方法:

方法:ListAvailableSQLServers()

属性:Name

           SQLServers

           Properties

示例程序:

 1/// <summary>
 2        /// 获取局域网内数据库服务器列表
 3        /// </summary>

 4        private void FormatServerList()
 5        {
 6            sqlServers = sqlApp.ListAvailableSQLServers(); 
 7
 8            if(sqlServers != null)
 9            {
10                for(int i=0;i<sqlServers.Count;i++
11                
12                    object srv = sqlServers.Item( i + 1); 
13                    
14                    ///添加到服务器的列表中去
15                    this.wdrp_ServerList.Items.Add(srv.ToString());                         
16                }

17            }

18        }

2.获取指定服务器的数据库列表:

这时需要创建一个SQLDMOSQLServer对象,用它来建立连接,并获取数据库列表,该对象的方法和属性:

方法:Connect(object servername,object Login,object Password)

 1/// <summary>
 2        /// 连接服务器
 3        /// </summary>
 4        /// <param name="ServerName">服务器名</param>
 5        /// <param name="Login">登录名</param>
 6        /// <param name="Password">密码</param>

 7        public void Connect(object ServerName,object Login,object Password)
 8        {
 9        
10        }

属性:Databases

           Name

           Login

           Password

           QueryTimeOut

在获取数据库列表时,利用它的Databases属性,示例代码如下:

 1/// <summary>
 2        /// 获取指定服务器的数据库的列表
 3        /// </summary>

 4        private void FormatDatabaseList()
 5        {
 6            SQLDMO.tSQLServer sr = new SQLDMO.SQLServerClass();
 7            sr.Connect(this.wdrp_ServerList.SelectedItem.ToString(),txtUserName,txtUserPwd);
 8            
 9            ///创建一个DataTable
10            DataTable dt = new DataTable();
11            dt.Columns.Add("Name");
12            dt.Columns.Add("Owner");
13            dt.Columns.Add("Size");
14            dt.Columns.Add("CreatDate");
15
16            foreach(Database db in sr.Databases)
17            {
18                if(db.Name != null)
19                {
20                    DataRow dr = dt.NewRow();
21
22                    ///获取数据库的名称
23            &nbs