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

如:"Server=127.0.0.1/Orcl;UserID=user;Password=psw"无法成功连接数据库。问题出在哪啊?删除IP地址和“/”后可以正常连接,... 如:
"Server=127.0.0.1/Orcl;User ID=user;Password=psw"
无法成功连接数据库。问题出在哪啊?删除IP地址和“/”后可以正常连接,但是数据库若没有安装在本机,访问数据库时是需要IP地址的。应该怎么写连接字符串啊?还是说上面的那种格式只使用于“非本地数据库”?
貌似连接字符串中不用添加IP地址,因为有oracle的监听服务,一个监听对应一个数据库实例,所以连接字符串中不用添加IP地址吧。求高手来看看是不是连接字符串的格式有问题。
展开
 我来答
匿名用户
2011-10-25
展开全部
如果是从一台机器连接另一台机器,首先要安装oracle的客户端程序,这样才有连接驱动。当然被链接的那台及其必须安装了oracle的数据库。然后连接方法是:

ODBC

新版本
Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;

旧版本
Driver={Microsoft ODBC Driver for Oracle};ConnectString=OracleServer.world;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=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;

受信连接
Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;

Oracle.DataAccess.Client.OracleConnection

标准
Data Source=TORCL;User Id=myUsername;Password=myPassword;

标准安全连接
Data Source=TORCL;Integrated Security=SSPI;

使用ODP.NET而不使用tnsnames.ora
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, ODP.NET, System.Data.OracleClient.OracleConnection

标准
Data Source=MyOracleDB;Integrated Security=yes;

用于8i RC3及以后的版本

指定用户名和密码
Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;Integrated Security=no;

用于8i RC3及以后的版本

忽略tnsnames.ora
另一种不需要使用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;

oConn.OpenWithNewPassword(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=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;User Id=myUsername;Password=myPassword;
amwishg1
2011-10-25 · TA获得超过178个赞
知道小有建树答主
回答量:484
采纳率:0%
帮助的人:338万
展开全部
最简单的做法是新建一个测试页面,在里面添加一个数据控件,添加一个连接,这样会显示一个连接字符串出来,将它拷贝出来就行了。
追问
……问题没这么简单,Server={0}/{1};User ID={2};Password={3}这是给定的format然后遍历XML中的节点然后生成连接字符串。我怀疑是不是连接字符串格式的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Ert0508
2011-10-31
知道答主
回答量:33
采纳率:0%
帮助的人:11.8万
展开全部
热心网友的 我不懂 还是赞下吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式