我已经安装Oracle客户端,并且能够实现用System.Data.OracleClient连通Oracle数据库。
同样的方法想用System.Data.OleDb连接Oracle数据库,不知道能不能实现?能的话,连接字符串是什么?还有其它什么设置?
----------------------------------代码如下:
System.Data.OleDb.OleDbConnection conn =
new System.Data.OleDb.OleDbConnection(connectionstring);
try
{
conn.Open();
conn.Close();
}
catch (System.Exception err)
{
Response.Write(err.Message);
}
finally
{
conn.Close();
}
-----------------------------
当连接字符串是:
Provider=OraOLEDB.Oracle;Data Source=abc;User Id=sa;Password=imd2006;
报错:
未在本地计算机上注册“OraOLEDB.Oracle”提供程序。当连接字符串是:
Provider=msdaora.1;Data Source=abc;User Id=sa;Password=imd2006;或
Provider=msdaora;Data Source=abc;User Id=sa;Password=imd2006;
报错:
发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。
同样的方法想用System.Data.OleDb连接Oracle数据库,不知道能不能实现?能的话,连接字符串是什么?还有其它什么设置?
----------------------------------代码如下:
System.Data.OleDb.OleDbConnection conn =
new System.Data.OleDb.OleDbConnection(connectionstring);
try
{
conn.Open();
conn.Close();
}
catch (System.Exception err)
{
Response.Write(err.Message);
}
finally
{
conn.Close();
}
-----------------------------
当连接字符串是:
Provider=OraOLEDB.Oracle;Data Source=abc;User Id=sa;Password=imd2006;
报错:
未在本地计算机上注册“OraOLEDB.Oracle”提供程序。当连接字符串是:
Provider=msdaora.1;Data Source=abc;User Id=sa;Password=imd2006;或
Provider=msdaora;Data Source=abc;User Id=sa;Password=imd2006;
报错:
发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。
Standard security:
"Provider=msdaora;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;"
This one's from Microsoft, the following are from Oracle
Standard Security:"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;" Trusted Connection:
"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;"
http://www.21cnvip.com/csdn/default.aspx?q=20040815/09/3275521.html
"Driver={Microsoft ODBC for Oracle};Server=OreracleServ.world;Uid=Username;Pwd=asdasd;"
出错
未在本地计算机上注册“{Microsoft ODBC for Oracle}”提供程序。
Provider=OraOLEDB.Oracle;Data Source=abc;User Id=sa;Password=imd2006;用这个字符串是没有问题的,而且已经告诉你错误信息了:
未在本地计算机上注册“OraOLEDB.Oracle”提供程序你打开Oracle安装目录,如:
C:\oracle92\network\ADMIN
里面有个tnsnames.ora文件,里面应该有个记录是上面Data Source所指的abc,例如:
abc =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.0.14)(PORT = 1521))
)
(CONNECT_DATA =
(SID = jasv)
(SERVER = DEDICATED)
)
)
这个驱动依安装的ORACLE客户端程序版本不同而不同。
tnsnames.ora没有问题
ODBC没有相应的ORACLE IN ORAHOME92驱动或类似的
现在,我该如何做?
那应该是ORACLE客户端安装的有问题
建议重新安装试试,我没有遇到过这种情况,都是安装了客户端后,那些驱动就自动安装上了。
Provider=msdaora.1;Data Source=abc;User Id=sa;Password=imd2006;或
Provider=msdaora;Data Source=abc;User Id=sa;Password=imd2006;
这两个都行
解决方法
重装oracle,关键是重装在Fat32盘上,还要重启。
当初ntfs盘上,我已经给oracle目录设了everyone的所有权限,不知道为什么不行。
找到ORACLE安装目录,打开目录属性->安全->把Authenticated Users用户的读取和执行权限去掉,然后再勾上,确定,然后重启电脑就OK了上面这个解决方法由ORACLE的工程师提供的,为什么就不是很清楚了凡是ORACLE安装使用有问题,都可以试试上面这个办法