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;
}
查看全文
相关阅读:
初始线程(相关理论)
python并发编程之多进程2-(数据共享及进程池和回调函数)
python并发编程之多进程1--(互斥锁与进程间的通信)
Cpython支持的进程与线程
网络编程之进程理论简介
python之网络socket编程
Gray码 (格雷码) 【二进制】
[BZOJ 2350] [Poi2011] Party 【Special】
[BZOJ 1033] [ZJOI2008] 杀蚂蚁antbuster 【模拟!】
[BZOJ 3209] 花神的数论题 【数位统计】
原文地址:https://www.cnblogs.com/ghd258/p/401907.html
最新文章
[BZOJ 3209] 花神的数论题
[POI 2007] 办公楼
初涉拉格朗日插值
初涉点分治
初涉可持久化并查集
【技巧:字符串同构】Avendesora
【线段树】uoj#228. 基础数据结构练习题
【离线做法 树状数组】luoguP1972 [SDOI2009]HH的项链
【动态规划】bzoj1044: [HAOI2008]木棍分割
【最长连续零 线段树】bzoj1593: [Usaco2008 Feb]Hotel 旅馆
热门文章
【dp 状态压缩 单调栈】bzoj3591: 最长上升子序列
【树论 倍增】51nod1709 复杂度分析
【数学 裴蜀定理】bzoj2257: [Jsoi2009]瓶子和燃料
【数学 exgcd】bzoj1407: [Noi2002]Savage
【线段树 集合hash】bzoj4373: 算术天才⑨与等差数列
初涉KMP算法
【线段树 细节题】bzoj1067: [SCOI2007]降雨量
python并发编程之进程池,线程池,协程
python并发编程之多线程2---(死锁与递归锁,信号量等)
python并发编程之多线程1
Copyright © 2011-2022 走看看