在运行时更改数据库名称

时间:2014-03-16 16:45:53

标签: vb.net entity-framework

我在Visual Basic 2013,Entity Framework 6.02,Sql server 2008R2上有一个应用程序。

我有几个相同的数据库。

在设计上,我通过向导创建了与其中一个连接(例如MyDB1)并且我已经配置了实体。现在,在运行时,我想让用户可以断开与数据库MyDB1的连接并连接到另一个(相同的)数据库,例如MyDb2。

如何通过代码完成此操作?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您通过SQL列出数据库,它将返回可能不适合您的应用程序的数据库,因为它会提供服务器上的数据库列表,这可能不是您想要的。我在类中硬编码不同的DB选项,并使用它来设置我的选项。我有一个用于所有数据库配置的类和我在下面列出的关键部分

Public Class MyDBClass
  Public Enum DBModeEnum
    Live = 0
    Training = 1
    Dev = 2
  End Enum

Public Function **GetDBString**(DBMode As DBModeEnum) As String
    If DBMode = DBModeEnum.Live Then
        Return "Server=ServerA;Database=DB1;Trusted_Connection=true;"
    ElseIf DBMode = DBModeEnum.Training Then
        Return "Server=ServerB;Database=DB1;Trusted_Connection=true;"
    Else
        Return "Server=ServerB;Database=DB2;Trusted_Connection=true;"
    End If
End Function
End Class

我在运行时选择数据库并将其保存在My.Resources .CurrentDB中。我调用函数GetDBString来设置连接字符串,我传递My.Resources .CurrentDB来识别数据库。

Dim connection = New SqlClient.SqlConnection
    connection.ConnectionString = **GetDBString**(My.Resources .CurrentDB)
    Dim cmd = connection.CreateCommand
    cmd.CommandType = CommandType.StoredProcedure
    cmd.CommandText = "base_Read_Case"