你可以试试看这个(我自己没有两个本地实例): using System; using System.Windows.Forms; using System.Data; using Microsoft.SqlServer.Management.Smo; //要添加Microsoft.SqlServer.Smo引用namespace WindowsApplication1 { public partial class Form1 : Form { public Form1() { //InitializeComponent(); bool localOnly = true; DataTable table = SmoApplication.EnumAvailableSqlServers(localOnly); //<---- foreach (DataRow row in table.Rows) { string s = ""; foreach (DataColumn c in table.Columns) { s += c.Caption + ": " + row[c] + "\n"; } MessageBox.Show(s); } } } }
谢谢gomoku !!!成功!我稍微改造一下,用一个下拉框接收,因为我只取name就好了。另外也说明一下Microsoft.SqlServer.Management.Smo的导入:引用—添加引用—选择.NET下的Microsoft.SqlServer.Smousing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Microsoft.SqlServer.Management.Smo; namespace WindowsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { bool localOnly = true; DataTable table = SmoApplication.EnumAvailableSqlServers(localOnly); //foreach (DataRow row in table.Rows) //{ // string s = ""; // foreach (DataColumn c in table.Columns) // { // s += c.Caption + ": " + row[c] + "\n"; // } // MessageBox.Show(s); //} this.cboServers.DataSource = table; this.cboServers.DisplayMember = "name"; } } }
请教楼主如何取得本机第一个服务器名即先安装的sql2000的服务器名(例如(local))? 谢谢!http://www.ahaoz.com/Article/203/209/441/2005/2005111590473.html
这是我上次提问时别人给我的代码地址,我试过,在局域网里可以获取自己和其他电脑的sql服务器名(不论是sql2000的还是sql2005的),不过只能获取第一个,而且如果局域网做了某些限制的话可能出现“没有设置对象的实例”的错误。
using System;
using System.Windows.Forms;
using System.Data;
using Microsoft.SqlServer.Management.Smo; //要添加Microsoft.SqlServer.Smo引用namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
//InitializeComponent(); bool localOnly = true;
DataTable table = SmoApplication.EnumAvailableSqlServers(localOnly); //<----
foreach (DataRow row in table.Rows)
{
string s = "";
foreach (DataColumn c in table.Columns)
{
s += c.Caption + ": " + row[c] + "\n";
}
MessageBox.Show(s);
}
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.SqlServer.Management.Smo; namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent(); } private void Form1_Load(object sender, EventArgs e)
{
bool localOnly = true;
DataTable table = SmoApplication.EnumAvailableSqlServers(localOnly);
//foreach (DataRow row in table.Rows)
//{
// string s = "";
// foreach (DataColumn c in table.Columns)
// {
// s += c.Caption + ": " + row[c] + "\n";
// }
// MessageBox.Show(s);
//}
this.cboServers.DataSource = table;
this.cboServers.DisplayMember = "name"; }
}
}