高人请进!!!!!!!!
我用的是 c# winform 想用代码获取本机的sql server 2000的服务器名称和端口号,然后显示在textbox中, --------------------编程问答----------------------------------------编程问答-------------------- 取得数据库服务器列表:
using System;
using System.Data.Sql;
using System.Text;
namespace AllSqlServer
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("正在遍历局域网数据库实例,请稍后.....");
SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance;
System.Data.DataTable table = instance.GetDataSources();
DisplayData(table);
Console.WriteLine("遍历结束");
Console.ReadLine();
}
private static void DisplayData(System.Data.DataTable table)
{
foreach (System.Data.DataRow row in table.Rows)
{
Console.WriteLine("服务器名 = {0}", row["ServerName"]);
Console.WriteLine("实例名 = {0}", row["InstanceName"]);
Console.WriteLine("是否是群集服务器 = {0}", row["IsClustered"]);//指示服务器是否是群集的一部分
Console.WriteLine("版本 = {0}", row["Version"]);//8.*是SQL 2000,9.*是SQL 2005
Console.WriteLine("============================");
}
}
}
}
public ArrayList GetServerList()
{
ArrayList alServers = new ArrayList() ;
SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass() ;
try
{
SQLDMO.NameList serverList = sqlApp.ListAvailableSQLServers() ;
for(int i = 1;i<= serverList.Count;i++)
{
alServers.Add(serverList.Item(i)) ;
}
}
catch(Exception e)
{
throw(new Exception("取数据库服务器列表出错:"+e.Message)) ;
}
finally
{
sqlApp.Quit() ;
}
return alServers ;
}
或
SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance;
DataTable dt = instance.GetDataSources().DefaultView.ToTable(true,"ServerName");
comboBox1.DisplayMember = "ServerName";
comboBox1.DataSource = dt;
--------------------编程问答-------------------- 学习 --------------------编程问答-------------------- 谢谢楼上的哈,还有一个就是获取端口号的问题了 --------------------编程问答--------------------
--------------------编程问答-------------------- 窗体上一个button1和一个richTextBox1,自己复制代码测试去吧呵呵
using Microsoft.Win32;
RegistryKey portkey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\MSSQLServer\\MSSQLServer\\SuperSocketNetLib\\Tcp",true);
MessageBox.Show("端口号:"+portkey.GetValue("TcpPort").ToString());
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.Sql;
using Microsoft.Win32;
namespace getsql
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance;
System.Data.DataTable table = instance.GetDataSources();
RegistryKey portkey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\MSSQLServer\\MSSQLServer\\SuperSocketNetLib\\Tcp",true);
richTextBox1.Text = "端口号:" + portkey.GetValue("TcpPort").ToString()+"\r\n\r\n";
foreach (System.Data.DataRow row in table.Rows)
{
richTextBox1.Text+="服务器名 = "+row["ServerName"]+" ";
richTextBox1.Text+="实例名 = "+row["InstanceName"]+" ";
richTextBox1.Text+="是否是群集服务器 = "+row["IsClustered"]+" ";//指示服务器是否是群集的一部分
richTextBox1.Text+="版本 = "+row["Version"]+"\r\n\r\n";//8.*是SQL 2000,9.*是SQL 2005
}
}
}
}
补充:.NET技术 , C#