C#通过Oracle提供的Oracle.DataAccess.dll直接连接数据库出错

Win764位,dll为Oracle11G64位,代码如下:usingOracle.DataAccess.Client;namespaceNoClient{publicp... Win7 64位,dll为Oracle11G 64位,代码如下:

using Oracle.DataAccess.Client;
namespace NoClient{ public partial class Form1 : Form { public Form1() { InitializeComponent(); string connstr = "Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.102)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = TESTDB)));User Id=TEST;Password=123;"; DataSet ds = new DataSet(); OracleConnection conn = new OracleConnection(connstr); string sSql = "select * from TEST.MY_emp"; try { conn.Open(); OracleCommand cmd = new OracleCommand(sSql, conn); OracleDataAdapter adpt = new OracleDataAdapter(cmd); adpt.Fill(ds); } catch (Exception e) { string str = e.ToString(); } finally { conn.Close(); }
if (ds.Tables.Count != 0 && ds.Tables[0].Rows.Count != 0) { empDataDGV.DataSource = ds; } }

在执行到conn.Open()的时候抛出异常:
Oracle.DataAccess.Client.OracleException 在 Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck) 在 Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src) 在 Oracle.DataAccess.Client.OracleConnection.Open() 在 NoClient.Form1..ctor() 位置 F:\my_design\NoClient\NoClient\Form1.cs:行号 24

Debug目录下有:

用Toad通过Client是可以连上数据库的,connstr就是从tnsnames.ora拿出来的。
哪位大神知道问题出在哪里?感激不尽!
展开
 我来答
阳光的雷咩咩
2014-06-19 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7838万
展开全部
  1. TEST.MY_emp中,点号左右分别是什么?

  2.   catch (Exception e)里面把e.Message输出看是什么内容。

更多追问追答
追问
1、TEST是用户,MY_EMP是表,还没执行到SQL语句,在执行conn.Open()就报异常了。
2、e.Message是空值。
追答
那说明连接字符串错误吧。oracle的连接方式我不太清楚,你可以百度一下,
关键字:oracle 连接字符串
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式