C#中如何判断sql服务器是否开启 本帖最后由 lht80053623 于 2010-08-30 10:18:33 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //添加windows服务所需引用空间System.Service.Process.dllusing System.ServiceProcess;public static bool ExistSqlServerService() { bool ExistFlag=false; ServiceController[] service=ServiceController.GetServices(); for(int i=0;i<service.Length;i++) { if (service[i].DisplayName.ToString()=="MSSQLSERVER") { ExistFlag=true; } } return ExistFlag; } 我使用了private static ServiceController sc = new ServiceController("MSSQLSERVER","192.168.1.13");if (sc.Status==ServiceControllerStatus.Running ) dbConnection.Open();由于sql服务运行在其他机器上,vs编译运行提示,权限不够,无法操作192.168.1.13 ServiceController sc = new ServiceController( "Telnet "); if((sc.Status.Equals(ServiceControllerStatus.Stopped)) || (sc.Status.Equals(ServiceControllerStatus.StopPending))) { sc.Start(); } else { sc.Stop(); } 使用ServiceController 还存在一个问题,远程计算机的sql服务如果未开启,还会陷入无响应状态一段时间,最终弹出错误和开启服务器的错误一样,都是权限不够 我试了3种情况,1、远程的sql服务启动 会立即弹出错误 无权限,拒绝访问2、远程的sql服务停止 会立即弹出错误3、远程计算机关闭 会停止响应后弹出错误三种情况抛出的错误一摸一样! 使用ServiceController 还存在一个问题,远程计算机的sql服务如果未开启,还会陷入无响应状态一段时间,最终弹出错误和开启服务器的错误一样,都是权限不够 我试了3种情况,1、远程的sql服务启动 会立即弹出错误 无权限,拒绝访问2、远程的sql服务停止 会立即弹出错误3、远程计算机关闭 会停止响应后弹出错误三种情况抛出的错误一摸一样! 在连接之前先判断,如果是打开的则将连接关闭后再重新打开,如果不是,则直接打开 private static SqlConnection connection; public static SqlConnection Connection { get { string connectionString = @"";//数据库连接语句 if (connection == null) { connection = new SqlConnection(connectionString); connection.Open(); } else if (connection.State == System.Data.ConnectionState.Closed) { connection.Open(); } else if (connection.State == System.Data.ConnectionState.Broken) { connection.Close(); connection.Open(); } return connection; } } public static bool ConnectionState() { SqlConnection cn = new SqlConnection(); bool returnResult = false; try { if (cn.State == ConnectionState.Open) { cn.Open(); returnResult = true; } } catch { MessageBox.Show("提示信息");//给用户的提示信息 } finally { cn.Close(); } returnResult;//根据返回的信息来判断连接状态如果为true那么就连接成功否则就失败可以弹出提示框给用户 } if (cn.State == ConnectionState.Open) { cn.Open(); returnResult = true; }是我看错了还是你弄错了??? if (cn的状态为open)执行 cn.open??? 直接用 socket 连接测试 使用tcp连接服务器的1433端口是一种方法.使用sqlconnection连接数据库服务器也是一种方法.当然你也可以检查服务是否启动.这种方法对远程计算机好像不行. 求教大侠如何在C#中对数据进行高低位转换(在线等) 在线等!!!!!!着急 socket传输汉字截断为乱码问题 winform中datagridiew焦点转移问题 C# 重写 tabControl 为程序员专用的IM聊天工具征集需求 一个邮件客户端的问题。。。。。。 在C#中如何嵌入EXECL的图表功能? 发布新闻 给标题加颜色,并且到数据库,怎么写代码 请教如何编译脱离.net环境的exe程序以及如何用C#去运行一个指定的windows exe程序? 用using System.Net.Mail怎么设置代理服务器啊 紧急求助
using System.ServiceProcess;public static bool ExistSqlServerService()
{
bool ExistFlag=false;
ServiceController[] service=ServiceController.GetServices();
for(int i=0;i<service.Length;i++)
{
if (service[i].DisplayName.ToString()=="MSSQLSERVER")
{
ExistFlag=true;
}
}
return ExistFlag;
}
private static ServiceController sc = new ServiceController("MSSQLSERVER","192.168.1.13");
if (sc.Status==ServiceControllerStatus.Running )
dbConnection.Open();
由于sql服务运行在其他机器上,vs编译运行提示,权限不够,无法操作192.168.1.13
if((sc.Status.Equals(ServiceControllerStatus.Stopped)) ||
(sc.Status.Equals(ServiceControllerStatus.StopPending)))
{
sc.Start();
}
else
{
sc.Stop();
}
我试了3种情况,
1、远程的sql服务启动 会立即弹出错误 无权限,拒绝访问
2、远程的sql服务停止 会立即弹出错误
3、远程计算机关闭 会停止响应后弹出错误三种情况抛出的错误一摸一样!
我试了3种情况,
1、远程的sql服务启动 会立即弹出错误 无权限,拒绝访问
2、远程的sql服务停止 会立即弹出错误
3、远程计算机关闭 会停止响应后弹出错误三种情况抛出的错误一摸一样!
private static SqlConnection connection;
public static SqlConnection Connection
{
get
{
string connectionString = @"";//数据库连接语句
if (connection == null)
{
connection = new SqlConnection(connectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed)
{
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
return connection;
}
}
{
SqlConnection cn = new SqlConnection();
bool returnResult = false;
try
{
if (cn.State == ConnectionState.Open)
{
cn.Open();
returnResult = true;
}
}
catch
{
MessageBox.Show("提示信息");//给用户的提示信息
}
finally
{
cn.Close();
}
returnResult;//根据返回的信息来判断连接状态如果为true那么就连接成功否则就失败可以弹出提示框给用户
}
{
cn.Open();
returnResult = true;
}是我看错了还是你弄错了??? if (cn的状态为open)执行 cn.open???
使用sqlconnection连接数据库服务器也是一种方法.
当然你也可以检查服务是否启动.这种方法对远程计算机好像不行.