怎样检测网络中的电脑是否有安装SQL 2000-阿里云开发者社区

开发者社区> 老朱教授> 正文

怎样检测网络中的电脑是否有安装SQL 2000

简介:
+关注继续查看

None.gif
引用SQL DMO组件
None.gif//取得本局域网内所有可用sql服务器名
None.gif
cmbServer.Items.Clear();
None.giftry
ExpandedBlockStart.gifContractedBlock.gifdot.gif{
InBlock.gif SQLDMO.Application app = new SQLDMO.ApplicationClass();
InBlock.gif SQLDMO.NameList list = app.ListAvailableSQLServers();
InBlock.gifint iCount = list.Count;
InBlock.gif
InBlock.giffor(int i = 0; i < iCount; i ++)
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gifstring sTemp = list.Item(i);
InBlock.gifif(sTemp != null)
InBlock.gif cmbServer.Items.Add(sTemp);
ExpandedSubBlockEnd.gif }

ExpandedBlockEnd.gif }

None.gifcatch
ExpandedBlockStart.gifContractedBlock.gifdot.gif{
InBlock.gif//如果取得SQLDMO组件出错, 则默认把本机名写进去
InBlock.gif
MessageBox.Show("无法取得服务器列表,可能是缺少SDLDMO.DLL!");
InBlock.gif cmbServer.Items.Add(System.Net.Dns.GetHostName());
ExpandedBlockEnd.gif }

None.gif为什么我用panyee(快乐王子)的那个例子一直出现“无法取得服务器列表,可能是缺少SDLDMO.DLL”,我有这个文件啊!
None.gif
None.gif如果用“http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=BCEAADFB-CFF3-4804-B3B3-6C7D6488982B”里的例子也不行会出现以下信息:
None.gif
"未处理的“System.InvalidCastException”类型的异常出现在WindowsApplication1.exe 中
None.gif其他信息:接口 SQLDMO.NameList 的 QueryInterface 失败。
None.gif怎么回事,请高手帮帮忙啊!
None.gif第一,你的sql server 版本不够。
None.gif 如果要使用SQLDMO.DLL就要去下载SQL sp2.
None.gif 第二,如果你想列出局域网内的所有的SQl server
None.gif 建议你用Sql server自带的 isql.exe 这个文件只要是sql server 6.5以上就可以了
None.gif 下面是源码:
None.gifstring fileName = "C:\\Program Files\\Microsoft SQL Server\\80\\Tools\\Binn\\isql.exe";
None.gifif(System.IO.File.Exists(fileName))
ExpandedBlockStart.gifContractedBlock.gifdot.gif{
InBlock.gif System.Diagnostics.ProcessStartInfo processStartInfo = new System.Diagnostics.ProcessStartInfo(fileName,"-L");
InBlock.gif processStartInfo.UseShellExecute = false;
InBlock.gif processStartInfo.CreateNoWindow = true;
InBlock.gif processStartInfo.RedirectStandardOutput = true;
InBlock.gif processStartInfo.RedirectStandardError = true;
InBlock.gif System.Diagnostics.Process process = System.Diagnostics.Process.Start(processStartInfo);
InBlock.gif process.WaitForExit();
InBlock.gif cboServerList.Items.Clear();
InBlock.gifint line = 1;
InBlock.gifstring server = null;
InBlock.gifwhile(process.StandardOutput.Peek() > -1)
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gif server = process.StandardOutput.ReadLine().Trim();
InBlock.gif line +=1;
InBlock.gifif ( line > 6)
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gif cboServerList.Items.Add(server);
ExpandedSubBlockEnd.gif }

InBlock.gif server = null;
ExpandedSubBlockEnd.gif }

ExpandedBlockEnd.gif }

None.gif cboServerList.Items.Remove(System.Environment.MachineName);
None.gif cboServerList.Items.Add("localhost");
None.gif cboServerList是一个ComoBox
None.gif
None.gif你可以现在cmd中输入isql.exe -? 看看参数序列中有没有你想要的
None.gif 至于说列出局域网内的sql server 要输入 isql -L就可以了
None.gifprivate void cmbDatabase_Enter(object sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gifdot.gif{
InBlock.gif//取得某服务器上的各个表名
InBlock.gif

InBlock.gifstring strServer = cmbServer.Text;
InBlock.gifstring strUid = txtUid.Text;
InBlock.gifif(strServer.Trim() != "" && strUid.Trim() != "")
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gifstring strPwd = txtPwd.Text;
InBlock.gifstring strConn = "server=" + strServer + ";database=master;uid=" + strUid + ";pwd=" + strPwd;
InBlock.gif SqlConnection conn = null;
InBlock.giftry
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gif conn = new SqlConnection(strConn);
InBlock.gifstring strSQL = "select * from sysdatabases order by dbid";
InBlock.gif SqlDataAdapter cmd = new SqlDataAdapter(strSQL, conn);
InBlock.gif DataSet ds = new DataSet();
InBlock.gif cmd.Fill(ds, "Databases");
InBlock.gif cmbDatabase.Items.Clear();
InBlock.giffor(int i = 0; i < ds.Tables["Databases"].Rows.Count; i ++)
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gifstring strDb = ds.Tables["Databases"].Rows[i]["name"].ToString();
InBlock.gif cmbDatabase.Items.Add(strDb);
ExpandedSubBlockEnd.gif }

ExpandedSubBlockEnd.gif }

InBlock.gifcatch(Exception ex)
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gif MessageBox.Show(ex.ToString());
ExpandedSubBlockEnd.gif }

InBlock.giffinally
ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
InBlock.gifif(conn.State == ConnectionState.Open)
InBlock.gif conn.Close();
ExpandedSubBlockEnd.gif }

ExpandedSubBlockEnd.gif }

InBlock.gifthis.Cursor = Cursors.Default;
ExpandedBlockEnd.gif }

None.gif



本文转自高海东博客园博客,原文链接:http://www.cnblogs.com/ghd258/archive/2006/05/16/401907.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Flink之CEP案例分析-网络攻击检测
上一篇我们介绍了Flink CEP的API,这一篇我们将以结合一个案例来练习使用CEP的API编写应用程序,以强化对API的理解。所选取的案例是对网络遭受的潜在攻击进行检测并给出告警。当下互联网安全形势仍然严峻,网络攻击屡见不鲜且花样众多,这里我们以DDOS(分布式拒绝服务攻击)产生的流入流量来作为遭受攻击的判断依据。
2588 0
iOS网络编程之四——请求类NSURLRequest使用详解
iOS网络编程之四——请求类NSURLRequest使用详解
18 0
安装并启用Active Directory域服务与DNS服务
为了使用Windows AD/ACL,首先需要在VPC内创建一个Active Directory域服务控制器。本文分步骤说明了如何在Windows Server系统中从头开始安装与配置AD域服务和相应的DNS服务
4606 0
DNN安装Microsoft SQL Server, Error:15401处理方法
今天在一台域服务器上安装DNN 时,在SQL 2005中添加Network Service账号总是报错: Create failed for Login “ComputerName\NETWORK SERVICE”(Microsoft.
574 0
DNN安装报错-The stored procedure 'dbo.GetPortalAliasByPortalID' doesn't exist.如何解决
因为出错代码比较长,就放在后面了。 出现"The stored procedure 'dbo.GetPortalAliasByPortalID' doesn't exist."报错的情况很多 只要是安装过程中出现异常终止,然后我们又试图访问没有安装好的网站(因为是装了一半终止的,所以DNN不会再触发安装的过程); 或者其它的设置导致DNN不能正常运行就有可能出现这个报错。
702 0
DNS server 安装配置
1.安装DNS软件包bind [root@localhost ~]# yum -y install bind 图片.png 2.配置 step1.
781 0
使用DotNetNuke(DNN) Startkit 4.7(及以上版本)安装无法完成问题的解决方法
最近决定使用DNN Startkit 做些开发,却发现下载DNN 4.8.2 Startkit安装后,生成的网站总是无法完成安装,一到数据库安装那里就停下来,只有进度条滚动,不执行安装的Script。 如图: 几经周折,最终发现自己犯了了一个很愚蠢的错误-没有仔细阅读说明。
671 0
+关注
3546
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载