Sql 如何使用VB.NET与用户';sa';并恢复数据库

Sql 如何使用VB.NET与用户';sa';并恢复数据库,sql,sql-server,vb.net,Sql,Sql Server,Vb.net,我是VB.NET新手,需要一些帮助才能连接到sql server 我安装了实例名为“sqlexpress”和passowrd“sql123”的SQLServer2008R2 express 我需要使用用户“sa”创建到此服务器实例的连接,并还原我的.bak数据库文件。 在此之后,我想创建一个名为“inituser”且密码为“inituser”的新用户,只针对该数据库,使用VB.NET运行T-SQL查询 这是我最初的功能: Private Sub DBConnect() Dim myCon

我是VB.NET新手,需要一些帮助才能连接到sql server

我安装了实例名为“sqlexpress”和passowrd“sql123”的SQLServer2008R2 express

我需要使用用户“sa”创建到此服务器实例的连接,并还原我的.bak数据库文件。 在此之后,我想创建一个名为“inituser”且密码为“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

有人能帮我吗?

当然,这样的命令需要用

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

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

然后您可以使用Restore类来执行您的操作。所需的步骤很多,它们取决于您的上下文。因此,我为您提供了一个指向的链接,您可以在其中找到以编程方式执行的还原操作的完整示例,该示例是您为执行命令而提供的:

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

您不通过sql server management studio执行此操作有什么原因吗?这会更简单,但此功能可以在单击按钮时执行。我需要这样做..也许可以编写一些存储过程并从代码中调用它们?是否可以从VB.NET进行数据库还原?您可以使用T-SQL命令进行还原,就像您使用上面的命令创建userSure一样,但您需要知道一些事情,如数据文件、逻辑和物理名称等。在MSDN中搜索“还原数据库”。附带说明。SMO库提供了完整的备份和恢复功能。我只需要在第一次恢复数据库。当我执行应用程序时,它在连接字符串中的“@”符号处显示错误。“意外令牌”
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()