鉴于
我有以下情况:在我的应用程序的运行时期间,我必须能够将数据库连接从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
一些想法?
答案 0 :(得分:0)
如果你使用“使用”语句,你会得到相同的“阻止”。
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();
}
}