读书人

请教在VB.NET中能否用代码启动SQL Ser

发布时间: 2012-01-20 18:53:53 作者: rapoo

请问在VB.NET中能否用代码启动SQL Server服务器?
我用VB.NET+SQL Server 2000做了个系统,唯一不爽的地方就是要手动附加数据库到服务器中。我想再做一个启动画面,在启动过程中将Sql Server 2000服务器自动启动,并检测服务器中是否有本系统的数据库存在,若有则正常启动,否则自动附加数据库。。。。请问哪位大大能实现这个功能??请多多指教!!!

[解决办法]
Imports SQLDMO
Public Function sStartMSDE(ByVal sSvrName As String, ByVal sUID As String, ByVal sPWD As String) As String
'********************************************************************
'该子例程将打开 MSDE。如果服务器已启动,
'错误捕获将退出该函数,服务器照常运行
'
'请注意,它不会将 SQL Service Manager 放到启动栏上。
'
'输入:
'  sSvrName  要启动的服务器
'  sUID    启动服务器的用户
'  sPWD    该用户的口令
'
'输出:
'  启动解决方案
'
'引用:
'  SQLDMO
'********************************************************************

Dim osvr As SQLDMO.SQLServer

osvr = CreateObject( "SQLDMO.SQLServer ")
'创建 SQLDMO 服务器对象

On Error GoTo StartError '错误捕获

osvr.LoginTimeout = 60
'启动服务器
osvr.Start(True, sSvrName, sUID, sPWD)


'返回结果
sStartMSDE = "已启动 " & sSvrName

ExitSub:
Exit Function

StartError:
If Err.Number = -2147023840 Then
'如果服务器已在运行,
'并且已在 NT 上执行了 Server.Start,将产生此错误
osvr.Connect(sSvrName, sUID, sPWD) '连接到服务器

'返回结果
sStartMSDE = sSvrName & " 已启动 "

Else '未知错误
'返回结果
sStartMSDE = Err.Description
End If

Resume ExitSub

End Function
[解决办法]
Dim mobServiceController As ServiceController

mobServiceController = New System.ServiceProcess.ServiceController( "MSSQLSERVER ")
----------------------------
'启动
If Not (mobServiceController.Status = ServiceProcess.ServiceControllerStatus.Running) Then
mobServiceController.Start()
End If

'停止
If mobServiceController.Status = ServiceProcess.ServiceControllerStatus.Running Then
If mobServiceController.CanStop = True Then
mobServiceController.Stop()
End If
End If


'暂停
If Not mobServiceController.Status = ServiceProcess.ServiceControllerStatus.Paused = True Then
If mobServiceController.CanPauseAndContinue = True Then
mobServiceController.Pause()
End If
End If

'继续
If mobServiceController.Status = ServiceProcess.ServiceControllerStatus.Paused = True Then
If mobServiceController.CanPauseAndContinue = True Then
mobServiceController.Continue()
End If
End If

读书人网 >VB Dotnet

热点推荐