C# ASP.NET中连接ORACLE的连接字符串写成这样是否错的啊?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# ASP.NET中连接ORACLE的连接字符串写成这样是否错的啊?相关的知识,希望对你有一定的参考价值。
如:
"Server=127.0.0.1/Orcl;User ID=user;Password=psw"
无法成功连接数据库。问题出在哪啊?删除IP地址和“/”后可以正常连接,但是数据库若没有安装在本机,访问数据库时是需要IP地址的。应该怎么写连接字符串啊?还是说上面的那种格式只使用于“非本地数据库”?
貌似连接字符串中不用添加IP地址,因为有oracle的监听服务,一个监听对应一个数据库实例,所以连接字符串中不用添加IP地址吧。求高手来看看是不是连接字符串的格式有问题。
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; 参考技术A 最简单的做法是新建一个测试页面,在里面添加一个数据控件,添加一个连接,这样会显示一个连接字符串出来,将它拷贝出来就行了。追问
……问题没这么简单,Server=0/1;User ID=2;Password=3这是给定的format然后遍历XML中的节点然后生成连接字符串。我怀疑是不是连接字符串格式的问题。
参考技术B 热心网友的 我不懂 还是赞下吧C# asp.net 数据库操作
要实现的操作是: 将TaskInfo表中当前ID行的TC值加入UserInfo表里当前登录用户的TC中, 同时对当前TaskInfo中pusher对应的UserInfo中的个人信息的TC减少相应的数值; 当前显示的TID和当前登录的UID都能通过request获取。 UserInfo UID,UserName,TC TaskInfo TID,Pusher,TC 将TaskInfo 的TC值加到UserInfo的TC中,同时减少Puser对应的UserInfo中的TC值 UserInfo中的UserName 与TaskInfo中的Pusher相对应 在线等sql操作代码
参考技术A 直接执行两条语句就是update
分数表
set
分数=(select
分数
from
分数表
where
id=加分人的id)+要加的分数
update
分数表
set
分数=(select
分数
from
分数表
where
id=付出分数的id)-要加的分数
当然你需要使用事务处理。在事务里面处理两条语句
不然万一有一句执行失败就不行了。
另外要是数据类型不对,你还需要借助转换函数cast(字段
as
数据类型())例如:cast(
title
as
varchar(50))
来执行运算。
以上是关于C# ASP.NET中连接ORACLE的连接字符串写成这样是否错的啊?的主要内容,如果未能解决你的问题,请参考以下文章
c#连接oracle数据库报“ORA-12154: TNS: 无法解析指定的连接标识符”错误,怎么解决?