我用C#编写了个winform窗体程序,现在想本地不安装Oracle客户端,通过ODBC的方式连接到局域网上其他机器上的Oracle,请问高手们应该怎么连接?
解决方案 »
- 使用C#访问Oracle,使用连接池,代码如何写,数据库端要不要做配置
- 微软企业库 5 ,设置缓存
- web下com控件调用问题
- 关于C#引用类型的问题
- 关于vs2008中如何测试部分自己写的函数方法
- ????????????[Microsoft][ODBC SQL Server Driver]超时已过期???
- 关于正则表达式 字符串替换的小问题 请大侠帮我解决
- DisPage这个控件哪里有呀?
- 这样用out有什么问题?? 无法从“string”转为"out string",应该怎么改正才对?
- WebService问题
- WIN7下 摄像头 求思路
- C# Form2用委托改Form1控件属性,编译通过但没结果,求助!!!!!
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;
ODBC
New version:"Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd;" Old version:"Driver={Microsoft ODBC Driver for Oracle};ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;" OLE DB, OleDbConnection (.NET)
Standard security:"Provider=msdaora;Data Source= MyOracleDB;UserId=UserName;Password=asdasd;"
This one's from Microsoft, the following are from Oracle
Standard Security:"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=Username;Password=asdasd;" Trusted Connection:"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;" OracleConnection (.NET)
Standard:"Data Source=Oracle8i;Integrated Security=yes";
This one works only with Oracle 8i release 3 or later
Declare the OracleConnection:C#:
using System.Data.OracleClient;
OracleConnection oOracleConn = new OracleConnection();
oOracleConn.ConnectionString = "my connectionstring";
oOracleConn.Open();参考资料:http://www.cnblogs.com/daview/archive/2004/04/10/5763.aspx