怎么用C#连接ORACLE数据库

Zygodactyous 2010-09-10 11:13:06
远程数据库:操作系统是linux,数据库是oracle10G。
客户端:操作系统是win2000server,开发软件DotNet2003。

已知数据库信息:
User:lee
Password:lee123
SID:ztss
IP:192.168.0.108
PORT:1521

现在用SQLPLUS可以连接:
用户名:lee,密码:lee123,主机字符串:ztss

但用C#代码就连接不上了,

代码片断:
using System.data.oracleclient;
string oradb = "Data Source=ztss;User Id=lee;Password=lee123;Integrated Security=no";
OracleConnection conn = new OracleConnection(oradb);
conn.Open();
出错信息如下:System.Data.OracleClient.OracleException错误。

请问:
应该怎么用代码去连接此数据库?
Data Source=192.168.0.108也是同样的错误。
Data Source究竟是什么?或者说我怎么通过已知的信息IP、SID、用户名及密码用C#去连接oracle数据库?
...全文
518 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
myhorsefsy 2010-09-10
  • 打赏
  • 举报
回复
oracle数据库要用IP访问才行。
Harvey_He 2010-09-10
  • 打赏
  • 举报
回复

string oradb = "Server=192.168.0.108; Data Source=ztss;User Id=lee;Password=lee123;Integrated Security=no";

//Data source 是你的数据库名字
Alden 2010-09-10
  • 打赏
  • 举报
回复
Data Source指定Oracle客户端的主机字符串。给出详细的错误提示。例如ex.Message等。
可以用VS菜单里的连接数据库的选项,会自动生成字符串看看
oneatree 2010-09-10
  • 打赏
  • 举报
回复
OracleConnection oConn = new OracleConnection(); const string ConnStr = "DATA SOURCE=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={0})(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME={1})));USER ID={2};PASSWORD={3}"; oConn.ConnectionString = string.Format(ConnStr,"192.168.6.51", "SERVICE_NAME", "USER ID", "PASSWORD"); oConn.Open();

wuyq11 2010-09-10
  • 打赏
  • 举报
回复
<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=数据库服务器ip)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=数据库实例名)));User ID=scott;Password=tiger;Unicode=True" providerName="System.Data.OracleClient"/>
</connectionStrings>
string ConnectionString="Data Source=TEST;user=system;password=manager;"; OracleConnection conn=new OracleConnection(ConnectionString);
安装oracle客户端,使用net mananger配置网络连接,测试连接,查看1521端口是否已经打开
看看$oracle/network/admin/tnsnames.ora,sqlnet.ora

<add name="connectionString" connectionString="server=a;user id=sys;password=sys;"
providerName="System.Data.OracleClient" />
string str= "Data Source=test;User Id=sys;Password=sya;DBA Privilege=SYSDBA;"
OleDbConnection conn=new OleDbConnection(str);
Baesky 2010-09-10
  • 打赏
  • 举报
回复

OracleConnection oConn = new OracleConnection();
const string ConnStr = "DATA SOURCE=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={0})(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME={1})));USER ID={2};PASSWORD={3}";
oConn.ConnectionString = string.Format(ConnStr,"192.168.6.51", "SERVICE_NAME", "USER ID", "PASSWORD");
oConn.Open();
Zygodactyous 2010-09-10
  • 打赏
  • 举报
回复
本地安装oracle客户端了,也配置了 tnsnames.ora,现在用SQLPLUS能连接上,
现在配了ODBC,通过ODBC测试能连接到数据库。
现在不会用C#的代码通过ODBC连接ORACLE,
希望大侠们给段代码
willy2358 2010-09-10
  • 打赏
  • 举报
回复
连接oracle数据库,本地需要安装oracle客户端。
mjp1234airen4385 2010-09-10
  • 打赏
  • 举报
回复
Data Source=192.168.0.108:1521/ztss
深海之蓝 2010-09-10
  • 打赏
  • 举报
回复
你在配datasource的时候 会输入ip的
深海之蓝 2010-09-10
  • 打赏
  • 举报
回复
using System.data.oracleclient;
你这个怎么是小写的?自己加的,没出提示?
oracle连接字符串不需要ip的,这个datasource是你在netmanager里边配的,如果你本机没配过这个datasource肯定是不行的

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧