SQL分布式管理对象(SQL-DMO)是Microsoft SQL Server 数据库管理对象封装的集合。它能实现:
1. 完成Sql server管理任务 2. 创建和管理Sql Server对象 3. 创建和管理Sql Server Agent任务、警报等 4. Sql Server安装和配置
要在C#中使用SQL-DMO,你必须在项目中添加COM引用。组件名称为:Microsoft SQL-DMO Object Library。注意:不是在cs文件中using它,直接添加引用就可以使用了!
有这么一个项目,需要用户自己管理数据库的日常操作,包括新增数据库、注册数据库、备份、恢复、删除等,这其中可能会列出网络上的服务器,列出服务器上的数据库,要求详细的出错提示等。而这些处理,如果使用SQL-DMO,将会非常简单。
列出网络上的SQL Server服务器,并别把服务器添加到一个comboBox中去:
这需要用到NameList 对象和ApplicationClass 对象,具体代码如下
SQLDMO.NameList names;
SQLDMO.ApplicationClass ac = new SQLDMO.ApplicationClass();
names = ac.ListAvailableSQLServers();
for (int i = 1; i < names.Count; i++)
{
ListItem li = new ListItem(i.ToString(), names.Item(i));
comboBox1.Items.Add(li);
}
接下来,我们就要对数据库进行连接了.我们知道,连接有2种方式:Sql Server认证和Windows认证。那么,该如何处理呢。
我们在Form中添加2个RadioButton,分别用于选择是哪种认证方式,然后再添加2个TextBox,用于当选择Sql 认证时,要求用户输入登录的数据库用户名和密码。
SQLDMO.SQLServerClass oServer = new SQLDMO.SQLServerClass();
try
{
if (rbtnSqlCer.Checked) //rbtnSqlCer为Sql server认证的RadioButton oServer.Connect(ServerName, username, password); //ServerName为服务器名,username为用户名,Password为密码 else { oServer.LoginSecure = true; oServer.LoginTimeout = 15; oServer.Connect(ServerName, null, null); }
}
如果我们需要SQLDMO提供详细的错误信息,那么我们还需要对Catch进行处理
catch (Exception ee) { oServer.DisConnect(); oServer = null; MessageBox.Show(ee.Message.ToString()); }
这样,服务器是否能连接,用户名是否存在,密码是否错,都能正确的提示出来!
连接完数据库后,我们就可以继续进行操作了。下一次,我们将讨论,如果取出连接服务器的路径,让用户选择,并创建数据库。