在Asp.net中如何用SQLDMO来获取SQL Server中的对象信息。首先我们想到的是所在的局域网内有多少SQL Server服务器,知道了服务器,有了登录的用户名和密码,就可以知道在指定的服务器上有多少张表,视图,存储过程,以及每张表中包含的字段信息等。
1.获取服务器的列表:
获取服务器时,主要是利用了SQLDMO的Application对象,该对象主要有以下几个主要的属性和方法:
方法: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

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

2.获取指定服务器的数据库列表:
这时需要创建一个SQLDMO的SQLServer对象,用它来建立连接,并获取数据库列表,该对象的方法和属性:
方法: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
}

2

3

4

5

6

7

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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23
