如果是从一台机器连接另一台机器,首先要安装oracle的客户端程序,这样才有连接驱动。当然被链接的那台及其必须安装了oracle的数据库。然后连接方法是:
ODBC
新版本
Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;
旧版本
Driver={Microsoft ODBC Driver for Oracle};ConnectString=OracleServerworld;Uid=myUsername;Pwd=myPassword;
OLE DB, OleDbConnection (NET)
标准连接
此连接字符串适用了微软的驱动。
Provider=msdaora;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
受信连接
Provider=msdaora;Data Source=MyOracleDB;Persist Security Info=False;Integrated Security=Yes;
标准连接
由Oracle提供的驱动。
Provider=OraOLEDBOracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
受信连接
Provider=OraOLEDBOracle;Data Source=MyOracleDB;OSAuthent=1;
OracleDataAccessClientOracleConnection
标准
Data Source=TORCL;User Id=myUsername;Password=myPassword;
标准安全连接
Data Source=TORCL;Integrated Security=SSPI;
使用ODPNET而不使用tnsnamesora
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=
(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))
(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
OracleConnection, Oracle Data Provider, ODPNET, SystemDataOracleClientOracleConnection
标准
Data Source=MyOracleDB;Integrated Security=yes;
用于8i RC3及以后的版本
指定用户名和密码
Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;Integrated Security=no;
用于8i RC3及以后的版本
忽略tnsnamesora
另一种不需要使用DSN的连接方式。
SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;
使用上面的连接字符串可能会导致Visual Studio报告错误,如果您在使用中出现了这些问题,请使用下面的这种连接方式。
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=
(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
使用连接池
如果连接池服务程序找不到已经存在的连接池,它将根据连接字符串创建一个新的池,否则将循环使用池中已存在的连接。
Data Source=myOracleDB;User Id=myUsername;
Password=myPassword;Min Pool Size=10;Connection Lifetime=120;
Connection Timeout=60;Incr Pool Size=5;Decr Pool Size=2;
[Page]
Windows身份验证
Data Source=myOracleDB;User Id=/;
特权连接
使用SYSDBA
Data Source=myOracleDB;User Id=SYS;Password=SYS;DBA Privilege=SYSDBA;
特权连接
使用SYSOPER
Data Source=myOracleDB;User Id=SYS;Password=SYS;DBA Privilege=SYSOPER;
密码过期处理过程
当使用一个连接字符串连接数据库后,出现“密码已过期”的错误时,请执行OpenWithNewPassword命令来提供新密码。
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;
oConnOpenWithNewPassword(sTheNewPassword);
Proxy验证
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;
Proxy User Id=pUserId;Proxy Password=pPassword;
Core Labs OraDirect (NET)
Standard
User ID=myUsername;Password=myPassword;Host=ora;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;
Data Shape
MS Data Shape
Provider=MSDataShape1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;User Id=myUsername;Password=myPassword;
这个应该是ASPNET未能找到TNS的配置文件,或者ASPNET找到的TNS配置文件中没有所要连接的TNS设定。
常见的一个原因是系统中有32,64位的Oracle或Oracle客户端共存,但是配置的不是真正连接所使用的客户的TNS。所以, 请检查一下Configuration Assistant配置的文件,然后直接将tnsnamesora文件所在的路径设置为环境变量TNS_ADMIN的值。
Microsoft JET Database Engine (0x80004005)未指定的错误解决1、系统可能没有注册msjetoledb40dll,解决办法是 点 开始--->运行, 输入 regsvr32 msjetoledb40dll, 回车即可;2、数据库所在文1、系统可能没有注册msjetoledb40dll,解决办法是 点 开始--->运行, 输入 regsvr32 msjetoledb40dll, 回车即可;2、数据库所在文件夹权限 打开办法是:打开我的电脑,然后点菜单上的“文件夹选项”--->查看,然后把“使用简单文件夹共享(推荐)”前面的钩去掉,然后点“确认”;接下来回到需要打开权限的文件夹(数据库存放的文件夹),右键---> 属性--->安全,然后点“添加”--->"高级"--->立即查找--->然后在下面的地方选择“everyone”--->确定--->点刚才加入的"everyone",然后在下面的大框编辑everyone权限为完全控制,保存即可。3、需要打开guest用户 打开方法:我的电脑--->控制面板--->管理工具---->计算机管理--->本地用户和组---用户---找到"guest",双击,然后把d出来的狂上的“帐户已停用”前的钩去掉,保存即可。4、temp(临时文件夹)权限 打开办法:windows--->temp,单击右键选择-属性,你就会看到一个叫做“安全”的选项,添加一个everyone,权限设置为完全控制,再将你正在使用windows的用户也设置为完全控制。试试吧,就这几个问题
出现错误的这个几率大些
1查看数据库连接语句没有发现错误;
2查看文件夹的权限已经全部给了everyone;
3打开数据库的同时,系统会在临时文件夹 %SystemRoot%/temp/ 下创建临时文件,而 %systemRoot%/temp/ 的权限不够解决:%SystemRoot%/temp/ 的权限加上(IUSER_电脑名的读写) 此错是WINDOWS目录下没有TEMP文件夹导致出错,建一个TEMP文件夹后则一切正常
4TEMP文件最好也把权限设置为everyone
造成错误的原因有以下几种:
1、在sql语句中少了‘,’分隔符。
2、在绑定变量时,出现变量名和SQL保留字相同的情况。
解决方法:
一般出现这种问题,都是由于SQL语句写得有问题,先要确认你的SQL语句没有漏掉“,”,然后是检查你的SQL语句中有没有SQL的保留字,最后检查你的函数写的是否正确。
以上就是关于C# ASP.NET中连接ORACLE的连接字符串写成这样是不是错的啊全部的内容,包括:C# ASP.NET中连接ORACLE的连接字符串写成这样是不是错的啊、ASP.NET VS2008连接Oracle提示Could not resolve the connect identifier、asp 调用oracle存储过程有返回记录集时经常是出现未指定错误'80004005'等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)