[英]Change Database during runtime in Entity Framework, without changing the Connection
[英]change database connection during runtime
给定
我遇到以下情况:在应用程序的运行期间,我必须能够将数据库连接从ODBC连接切换到DB2连接,反之亦然。
问题
我所有的方法都能正常工作。 如果我建立了到ODBC的连接,它将起作用。 如果我建立了与Db2的连接,它将正常工作。 但是,如果我尝试连接到Db2,然后再连接到ODBC驱动程序,则会收到一条错误消息,告诉我他找不到正确的数据库。
例:
如果我尝试这样做:
public void HelpMeTest() {
string odbcConnectionString = string.Format("DSN={0};UID={1};PWD={2};", "MY-DNS", "myUser", "pwd");
string db2ConnectionString = "Database=myDataBase;";
OdbcConnection odbcCon = new OdbcConnection(odbcConnectionString);
odbcCon.Open();
odbcCon.Close();
DB2Connection db2Con = new DB2Connection(db2ConnectionString);
db2Con.Open();
db2Con.Close();
}
工作正常。 但是我尝试这样做:
public void HelpMeTest() {
string odbcConnectionString = string.Format("DSN={0};UID={1};PWD={2};", "MY-DNS", "myUser", "pwd");
string db2ConnectionString = "Database=myDataBase;";
DB2Connection db2Con = new DB2Connection(db2ConnectionString);
db2Con.Open();
db2Con.Close();
OdbcConnection odbcCon = new OdbcConnection(odbcConnectionString);
odbcCon.Open();
odbcCon.Close();
}
在odbcCon.Open()期间出现错误。 这告诉我我的数据库格式错误,因为他认为MY-DNS是数据库的名称,而不是DSN。
ERROR [HY501] [IBM][CLI Driver] SQL1001N "MY-DNS" is not a valid database name. SQLSTATE=2E000
有什么想法吗?
如果使用“ using”语句,是否得到相同的“ blocking”。
public void HelpMeTest() {
string odbcConnectionString = string.Format("DSN={0};UID={1};PWD={2};", "MY-DNS", "myUser", "pwd");
string db2ConnectionString = "Database=myDataBase;";
using (DB2Connection db2Con = new DB2Connection(db2ConnectionString))
{
db2Con.Open();
db2Con.Close();
}
using (OdbcConnection odbcCon = new OdbcConnection(odbcConnectionString))
{
odbcCon.Open();
odbcCon.Close();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.