zoukankan
html css js c++ java
怎样检测网络中的电脑是否有安装SQL 2000
引用SQL DMO组件
//
取得本局域网内所有可用sql服务器名
cmbServer.Items.Clear();
try
{
SQLDMO.Application app
=
new
SQLDMO.ApplicationClass();
SQLDMO.NameList list
=
app.ListAvailableSQLServers();
int
iCount
=
list.Count;
for
(
int
i
=
0
; i
<
iCount; i
++
)
{
string
sTemp
=
list.Item(i);
if
(sTemp
!=
null
)
cmbServer.Items.Add(sTemp);
}
}
catch
{
//
如果取得SQLDMO组件出错, 则默认把本机名写进去
MessageBox.Show(
"
无法取得服务器列表,可能是缺少SDLDMO.DLL!
"
);
cmbServer.Items.Add(System.Net.Dns.GetHostName());
}
为什么我用panyee(快乐王子)的那个例子一直出现“无法取得服务器列表,可能是缺少SDLDMO.DLL”,我有这个文件啊!
如果用“http:
//
xml.sz.luohuedu.net/xml/ShowDetail.asp?id=BCEAADFB-CFF3-4804-B3B3-6C7D6488982B”里的例子也不行会出现以下信息:
"
未处理的“System.InvalidCastException”类型的异常出现在WindowsApplication1.exe 中
其他信息:接口 SQLDMO.NameList 的 QueryInterface 失败。
怎么回事,请高手帮帮忙啊!
第一,你的sql server 版本不够。
如果要使用SQLDMO.DLL就要去下载SQL sp2.
第二,如果你想列出局域网内的所有的SQl server
建议你用Sql server自带的 isql.exe 这个文件只要是sql server
6
.5以上就可以了
下面是源码:
string
fileName
=
"
C:\\Program Files\\Microsoft SQL Server\\80\\Tools\\Binn\\isql.exe
"
;
if
(System.IO.File.Exists(fileName))
{
System.Diagnostics.ProcessStartInfo processStartInfo
=
new
System.Diagnostics.ProcessStartInfo(fileName,
"
-L
"
);
processStartInfo.UseShellExecute
=
false
;
processStartInfo.CreateNoWindow
=
true
;
processStartInfo.RedirectStandardOutput
=
true
;
processStartInfo.RedirectStandardError
=
true
;
System.Diagnostics.Process process
=
System.Diagnostics.Process.Start(processStartInfo);
process.WaitForExit();
cboServerList.Items.Clear();
int
line
=
1
;
string
server
=
null
;
while
(process.StandardOutput.Peek()
>
-
1
)
{
server
=
process.StandardOutput.ReadLine().Trim();
line
+=
1
;
if
( line
>
6
)
{
cboServerList.Items.Add(server);
}
server
=
null
;
}
}
cboServerList.Items.Remove(System.Environment.MachineName);
cboServerList.Items.Add(
"
localhost
"
);
cboServerList是一个ComoBox
你可以现在cmd中输入isql.exe
-
? 看看参数序列中有没有你想要的
至于说列出局域网内的sql server 要输入 isql
-
L就可以了
private
void
cmbDatabase_Enter(
object
sender, System.EventArgs e)
{
//
取得某服务器上的各个表名
string
strServer
=
cmbServer.Text;
string
strUid
=
txtUid.Text;
if
(strServer.Trim()
!=
""
&&
strUid.Trim()
!=
""
)
{
string
strPwd
=
txtPwd.Text;
string
strConn
=
"
server=
"
+
strServer
+
"
;database=master;uid=
"
+
strUid
+
"
;pwd=
"
+
strPwd;
SqlConnection conn
=
null
;
try
{
conn
=
new
SqlConnection(strConn);
string
strSQL
=
"
select * from sysdatabases order by dbid
"
;
SqlDataAdapter cmd
=
new
SqlDataAdapter(strSQL, conn);
DataSet ds
=
new
DataSet();
cmd.Fill(ds,
"
Databases
"
);
cmbDatabase.Items.Clear();
for
(
int
i
=
0
; i
<
ds.Tables[
"
Databases
"
].Rows.Count; i
++
)
{
string
strDb
=
ds.Tables[
"
Databases
"
].Rows[i][
"
name
"
].ToString();
cmbDatabase.Items.Add(strDb);
}
}
catch
(Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
if
(conn.State
==
ConnectionState.Open)
conn.Close();
}
}
this
.Cursor
=
Cursors.Default;
}
查看全文
相关阅读:
计算几何——直线交点poj1269
计算几何——线段和直线判交点poj3304
mysql优化
MyBatis的返回参数类型和查询结果遍历
Java中HashMap遍历的两种方式
Java 常用排序算法/程序员必须掌握的 8大排序算法
手动挡车该如何磨合
手动挡你会开吗 八招教你开好手动挡车型
开手动挡车10大技巧 老司机也不一定全知道!
手动挡汽车操作必须知道的9大误区
原文地址:https://www.cnblogs.com/ghd258/p/401907.html
最新文章
POJ 1659 Havel-Hakimi定理
POJ 2976 裸的01分数规划
324. Wiggle Sort II
274. H-Index
179. Largest Number
164. Maximum Gap
148. Sort List
147. Insertion Sort List
93. Restore IP Addresses
92. Reverse Linked List II
热门文章
91. Decode Ways
90. Subsets II
组合数学——cf1065E
线性dp——cf1067A
模拟求root——cf1067B
dp转图论——cf1070A好题
数论剩余系——cf1089F
思维构造——cf1090D
计算几何——poj1410,线段不规范交
计算几何——判线段规范相交+最短路zoj1721
Copyright © 2011-2022 走看看