我在Visual Basic 2013,Entity Framework 6.02,Sql server 2008R2上有一个应用程序。
我有几个相同的数据库。
在设计上,我通过向导创建了与其中一个连接(例如MyDB1)并且我已经配置了实体。现在,在运行时,我想让用户可以断开与数据库MyDB1的连接并连接到另一个(相同的)数据库,例如MyDb2。
如何通过代码完成此操作?
谢谢!
答案 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"