如何使用VB.NET与用户' sa'连接到sql server。并恢复数据库

时间:2014-10-01 08:34:03

标签: sql sql-server vb.net

我是VB.NET的新手,需要一些帮助来建立与sql server的连接。

我用实例名“sqlexpress”和passowrd“sql123”来安装sql server 2008 r2 express。

我需要使用用户'sa'创建与此服务器实例的连接,并恢复我的.bak数据库文件。 在此之后,我想创建一个名为密码'inituser'的新用户,仅用于此数据库,使用VB.NET运行T-SQL查询。

这是我的初始功能:

Private Sub DBConnect()
    Dim myConn As SqlConnection
    Dim q1 As SqlCommand
    Dim q2 As SqlCommand

    myConn = New SqlConnection(@"Server=.\SQLEXPRESS;User Id=sa;Password=sqlexpress1;")
    ' restore the databse .bak file
    q1 = myConn.CreateCommand
    q1.CommandText = "RESTORE DATABASE AdventureWorks2012 FROM DISK = '" + _DBFilePath + "'"
    ' create new user for EasyFarmacy Database
    q2 = myConn.CreateCommand
    q2.CommandText = "CREATE LOGIN inituser WITH PASSWORD = 'inituser' USE EasyFarmacy GO CREATE USER inituser FROM login inituser GO"

    Try
        myConn.Open()
        q1.ExecuteNonQuery()
        q2.ExecuteNonQuery()
    Catch ex As Exception
        MsgBox("Database connection error!  + '" + ex.Message + "'")
    End Try
    myConn.Close()
End Sub

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

当然这样的命令需要用ExecuteNonQuery

执行
myCmd.CommandText = "CREATE LOGIN inituser WITH PASSWORD = 'inituser'"
myConn.Open()
myCmd.ExecuteNonQuery

现在,对于Restore部分,我建议使用对安装Sql Server时部署的SMO库的引用。您可以在GAC中找到所需的程序集

Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Management.Sdk.Sfc
Microsoft.SqlServer.Smo
Microsoft.SqlServer.SmoExtended

然后您可以使用Restore类来执行操作。所需的步骤很多,取决于您的背景。所以我给你一个MSDN page about this Restore class的链接,在那里你可以找到一个以编程方式执行的恢复操作的完整示例

答案 1 :(得分:0)

你给了执行你的命令:

Private Sub DBConnect()
Dim myConn As SqlConnection
Dim myCmd As SqlCommand

myConn = New SqlConnection(@"Server=.\SQLEXPRESS;User Id=sa;Password=sql123;")
myCmd = myConn.CreateCommand
myCmd.CommandText = "CREATE LOGIN inituser WITH PASSWORD = 'inituser'"
myConn.Open()
myCmd.ExecuteNonQuery()



myConn.Close()

End Sub