ServiceController sc = new ServiceController();
sc.ServiceName = "MSSQL$SQLEXPRESS";
if (sc.Status != ServiceControllerStatus.Running)
{
sc.Stop();
sc.Start();
sc.Refresh();
}
上面写的对吗?先Stop再重新start?
16 个解决方案
#1
先停止在开始,你也不能开始后停止啊
#2
既然你可以设置开机运行你的程序。
那么你可以可以设置sql server开机自动运行。
那么你可以可以设置sql server开机自动运行。
#3
我就是怕程序运行了,数据库还没加载好,程序就会报错了。。
#4
用程序控制不怎么好,在配置器上设置自动启动比较好。
#5
是这样的,程序需要向数据库里读和写,如果在开机的时候,程序已经开始运行了,而数据库还没加载好,程序就会报错了。。
#6
数据库自动启动是必须的,但是就是怕程序先于数据库运行的话,就会报错。
#7
在程序中判断比较好,如果出错接sleep30秒后,重试。
#8
请问是让服务sleep30秒还是让程序的线程sleep30秒呢?
#9
让程序sleep30秒,然后再访问。
#10
如果你的程序是应用程序也不是系统服务的话,那么你的程序启动时,数据库肯定已经成功启动了(前提:你的数据库设置为自动启动,且数据库没有发生错误),那就不存在数据库问题了
但是如果你的程序是系统服务,那么你可以设置你的系统服务,依懒于数据库的服务,这样,你的系统服务在启动前,肯定会先启动数据库服务
#11
你用程序判断数据库服务是否开启 如果没有开启 你应该弹出个对话框提示 正在等待数据库服务启动,然后让程序休眠30s然后再检查 等数据库服务启动后 提示框消失,程序运行
#12
请问是直接Thread.Sleep(30000)就休眠了,然后30秒后程序还能运行吗?
#13
当前线程自动让出CPU使用权(Sleep),然后继续运行。
#14
哦,谢谢各位,我总结了一下,就是程序在开机运行时休眠30秒(或更多)
ServiceController sc = new ServiceController();
sc.ServiceName = "MSSQL$SQLEXPRESS";
if (sc.Status != ServiceControllerStatus.Running)
{
Thread.Sleep(30000);
}
这样应该就能避免了。。
ServiceController sc = new ServiceController();
sc.ServiceName = "MSSQL$SQLEXPRESS";
if (sc.Status != ServiceControllerStatus.Running)
{
Thread.Sleep(30000);
}
这样应该就能避免了。。
#15
正解
#16
没连数据库程序就报错,这个太不友好了,你可以捕捉提示啊
#1
先停止在开始,你也不能开始后停止啊
#2
既然你可以设置开机运行你的程序。
那么你可以可以设置sql server开机自动运行。
那么你可以可以设置sql server开机自动运行。
#3
我就是怕程序运行了,数据库还没加载好,程序就会报错了。。
#4
用程序控制不怎么好,在配置器上设置自动启动比较好。
#5
是这样的,程序需要向数据库里读和写,如果在开机的时候,程序已经开始运行了,而数据库还没加载好,程序就会报错了。。
#6
数据库自动启动是必须的,但是就是怕程序先于数据库运行的话,就会报错。
#7
在程序中判断比较好,如果出错接sleep30秒后,重试。
#8
请问是让服务sleep30秒还是让程序的线程sleep30秒呢?
#9
让程序sleep30秒,然后再访问。
#10
如果你的程序是应用程序也不是系统服务的话,那么你的程序启动时,数据库肯定已经成功启动了(前提:你的数据库设置为自动启动,且数据库没有发生错误),那就不存在数据库问题了
但是如果你的程序是系统服务,那么你可以设置你的系统服务,依懒于数据库的服务,这样,你的系统服务在启动前,肯定会先启动数据库服务
#11
你用程序判断数据库服务是否开启 如果没有开启 你应该弹出个对话框提示 正在等待数据库服务启动,然后让程序休眠30s然后再检查 等数据库服务启动后 提示框消失,程序运行
#12
请问是直接Thread.Sleep(30000)就休眠了,然后30秒后程序还能运行吗?
#13
当前线程自动让出CPU使用权(Sleep),然后继续运行。
#14
哦,谢谢各位,我总结了一下,就是程序在开机运行时休眠30秒(或更多)
ServiceController sc = new ServiceController();
sc.ServiceName = "MSSQL$SQLEXPRESS";
if (sc.Status != ServiceControllerStatus.Running)
{
Thread.Sleep(30000);
}
这样应该就能避免了。。
ServiceController sc = new ServiceController();
sc.ServiceName = "MSSQL$SQLEXPRESS";
if (sc.Status != ServiceControllerStatus.Running)
{
Thread.Sleep(30000);
}
这样应该就能避免了。。
#15
正解
#16
没连数据库程序就报错,这个太不友好了,你可以捕捉提示啊