我正在使用C#应用程序,我们希望使用ODBC连接到Oracle数据库。当我尝试打开连接时,它给了我" ERROR [IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称,并且没有指定默认驱动程序"。它尝试使用以下方法连接到Oracle 11g数据库:
public OdbcConnectionStringBuilder buildOdbcConnectionString(string InitialCatalog)
{
OdbcConnectionStringBuilder connStr = new OdbcConnectionStringBuilder();
connStr.Driver = "{Microsoft ODBC for Oracle};";
connStr.ConnectionString = "Driver={Microsoft ODBC for Oracle};" + "CONNECTSTRING=(DESCRIPTION="
+ "(ADDRESS=(PROTOCOL=TCP)(HOST=" + tbDbServer.Text + ")(PORT=1521))"
+ "(CONNECT_DATA=(SERVICE_NAME=" + InitialCatalog + ")));"
+ "User Id=" + tbUser.Text + ";Password=" + tbPassword.Text + ";"
+ "Connection Timeout = 300;";
return connStr;
}
public DbConnection(string name, OdbcConnectionStringBuilder odbcStringBuilder )
{
try
{
Name = name;
odbcConnection = new OdbcConnection(odbcStringBuilder.ConnectionString);
}
catch (Exception e)
{
throw e;
}
}
public void Open(OdbcConnection testConn)
{
if (testConn.State == ConnectionState.Closed)
{
testConn.Open();
}
}
public Boolean testConnection(OdbcConnection testConn)
{
try
{
Open(testConn);
Close(testConn);
return true;
}
catch
{
return false;
}
}
关于我需要调整什么才能让它连接的任何想法?
答案 0 :(得分:0)
我不认为您可以将所有Oracle内容放在连接字符串中,但无论如何看起来ODBC驱动程序管理器要么被您的连接字符串搞糊涂了,要么您没有Microsoft ODBC用于安装Oracle驱动程序。如果您安装了该驱动程序,那么计算连接字符串的简单方法是:a)使用驱动程序管理器对话创建DSN,b)测试它是否正常工作c)使用DSN = mydsn连接代码d)检查输出连接字符串SQLDriverConnect可以返回(即C API,但我在C#中假定您可以获得相同的信息)。然后,您可以删除DSN并使用返回的字符串SQLDriverConnect进行无DSN连接。