最近在作项目的时候,常常会遇见这样的问题:程序运行时,数据库服务器却没有运行,这样的话数据库连接就会失败,程序就会出现错误。这是对用户的使用就会造成不必要的麻烦,因此在作项目时,使用了一下两种解决方案:
方案一:
使用多线程就行操作:向Windows发送消息,创建System.Diagnostics.Process类实例和调用其中的start方法和StartInfo设置其中的Arguments,代码如下:
启动服务的方法:
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "net";
p.StartInfo.Arguments = "start mssqlserver";
p.Start();
关闭服务的方法:
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "net.exe";
p.StartInfo.Arguments = "stop mssqlserver";
p.Start();
但是,其中出现了了一个问题,就是出现一个黑色对话框(这是不可避免的)。
方案二:
使用C#中提供的System.ServiceProcess类库提供的方法。
启动服务代码如下:
ServiceController sc = new ServiceController("MSSQLSERVER");
sc.Start();
关闭服务的方法:
ServiceController sc = new ServiceController("MSSQLSERVER");
sc.Stop();
这个是我认为比较好的方法。
方案一:
使用多线程就行操作:向Windows发送消息,创建System.Diagnostics.Process类实例和调用其中的start方法和StartInfo设置其中的Arguments,代码如下:
启动服务的方法:
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "net";
p.StartInfo.Arguments = "start mssqlserver";
p.Start();
关闭服务的方法:
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "net.exe";
p.StartInfo.Arguments = "stop mssqlserver";
p.Start();
但是,其中出现了了一个问题,就是出现一个黑色对话框(这是不可避免的)。
方案二:
使用C#中提供的System.ServiceProcess类库提供的方法。
启动服务代码如下:
ServiceController sc = new ServiceController("MSSQLSERVER");
sc.Start();
关闭服务的方法:
ServiceController sc = new ServiceController("MSSQLSERVER");
sc.Stop();
这个是我认为比较好的方法。