列出局域网内部的所有SQLSERVER,SQLDMO??????

brightheroes 2003-07-08 09:29:16
各位大虾,我要用一个下拉菜单列出局域网内的所有装有SQLSERVER的名字,搜索了一下以前的贴子。首先添加了SQLDMO组件。然后把代码粘贴过来调试,结果出错。代码如下:
USING SQLDMO;
SQLDMO.ApplicationClass app = new SQLDMO.ApplicationClass();
SQLDMO.NameList list = app.ListAvailableSQLServers(); //出错!!!
string server;
int count = 0;
for(int i=0;i<list.Count;i++)
{
count++;
server = list.Item(i);
if(server==null)continue;
Console.WriteLine(server);
}

错误信息是 接口SQLDMO.NameList的QueryInterface失败。
请各位大虾指点。
...全文
31 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
speedyen 2003-11-28
  • 打赏
  • 举报
回复
up
brightheroes 2003-07-11
  • 打赏
  • 举报
回复
楼上的各位,这个问题解决了,本来考虑用sqldmo,可是那样程序不能在版本低的机器上run
后来考虑用端口扫描来做,那样速度很慢了。
最后发现sql自带的一个exe文件——isql.exe,给它的参数指定为"-L"就可以得到局域网内的所有服务器了。
感谢大家帮忙。
brightheroes 2003-07-10
  • 打赏
  • 举报
回复
我顶~~~
liuagui 2003-07-10
  • 打赏
  • 举报
回复
UP
brightheroes 2003-07-10
  • 打赏
  • 举报
回复
to 寒星: 能不能给点具体的思路?
伪装绅士 2003-07-10
  • 打赏
  • 举报
回复
up
寒星 2003-07-10
  • 打赏
  • 举报
回复
可以考虑使用UDP对局域网中的存在的SQL SERVER进行确认。
brightheroes 2003-07-08
  • 打赏
  • 举报
回复
楼上的老兄,这样做是可以的,但是如果我在其他的机器上运行就会有同样的问题
我想知道如何解决这个问题,从根本上解决,就是不用SQLDMO。
brightheroes 2003-07-08
  • 打赏
  • 举报
回复
我去try try
sunyou 2003-07-08
  • 打赏
  • 举报
回复
你用SQL Server 2000的SP3 中的sqldmo.dll替换SQL Server安装目录中原来的文件就可以了,或者安装SP3

重新引用sqldmo.dll就可以了
brightheroes 2003-07-08
  • 打赏
  • 举报
回复
请问大虾们,我一定要用这个东西才可以实现这个东西吗?
而且是不是局域网内的所有sql server都要升级?
还有其它的解决方法吗?
brightheroes 2003-07-08
  • 打赏
  • 举报
回复
楼上的两位,如果我不用这个,可不可以实现呢??
brightheroes 2003-07-08
  • 打赏
  • 举报
回复
老大,这个东西很复杂,呵呵。晕死,都不知道怎么安装,呵呵
chinchy 2003-07-08
  • 打赏
  • 举报
回复
YES
brightheroes 2003-07-08
  • 打赏
  • 举报
回复
楼上的两位大虾,是不是要下sql2ksp2.exe这个东西?
brightheroes 2003-07-08
  • 打赏
  • 举报
回复
人民币大虾,请问SQL SERVER SP2是个什么样的东东?
从哪里可以下载?
如何安装?
是个SQL SERVER 的补丁吗?
寒星 2003-07-08
  • 打赏
  • 举报
回复
看看你的SQL SERVER版本,如果版本低于8.00.534,,要安装SP2.http://www.microsoft.com/sql/downloads/2000/sp2.asp。
chinchy 2003-07-08
  • 打赏
  • 举报
回复
要装SQL SERVER SP2
寒星 2003-07-08
  • 打赏
  • 举报
回复
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

using SQLDMO;

namespace TestSQLDMO
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;

public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();

//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}

/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows Form Designer generated code
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(104, 192);
this.button1.Name = "button1";
this.button1.TabIndex = 0;
this.button1.Text = "button1";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.button1});
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);

}
#endregion

/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
System.Windows.Forms.Application.Run(new Form1());
}

private void button1_Click(object sender, System.EventArgs e)
{
SQLDMO.ApplicationClass sqlApp = new SQLDMO.ApplicationClass();
SQLDMO.NameList nameList;
int i = 0;

nameList = sqlApp.ListAvailableSQLServers();

for(i=1;i<nameList.Count;i++)
{
MessageBox.Show(nameList.Item(i).ToString());
}
}
}
}
brightheroes 2003-07-08
  • 打赏
  • 举报
回复
System.InvalidCastException: 接口 SQLDMO.NameList 的 QueryInterface 失败。
at SQLDMO.ApplicationClass.ListAvailableSQLServers()
at FindSQL.Class1.Main(String[] args) in e:\my job\findsql\class1.cs:line 22


UP~!
加载更多回复(4)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧