C# ASP.NET中连接ORACLE的连接字符串写成这样是不是错的啊

C# ASP.NET中连接ORACLE的连接字符串写成这样是不是错的啊,第1张

如果是从一台机器连接另一台机器,首先要安装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'等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9366381.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存