当前位置:   article > 正文

c# mysql oledb_C# 使用oledb 方式连接本地或者远程oracel 数据库的方式

c# oledb

对于C# 进行oracle 数据库的开发来说使用oracle 提供的odp.net 方式是比较方便的,同时在性能以及兼容性也是比较好的

但是,对于不打算使用的,那么该如何使用oledb 进行连接

连接的方式大家可定都比较了解就是ADO.net 但是最重要的是连接字符串是怎么样的。

先贴测试代码:

using (OleDbConnection ole = new OleDbConnection(tep))

{

OleDbCommand cmd = new OleDbCommand("select * from firstclass");

cmd.Connection = ole;

OleDbDataAdapter dr = new OleDbDataAdapter(cmd);

DataSet ds = new DataSet();

dr.Fill(ds);

dataGridView1.DataSource = ds.Tables[0];

}

大家可以看到是很简单的,但是上面的tep 即连接字符串改何如写呢。

一般有一下几种使用dsn 的方式进行配置并写好,但是对于不太了解odbc 配置的人员会比较费时。

如何使用根据odp.net 的连接方式然后根据vs 的调试提示,获取连接字符串呢?比较简单

我的获取方式是如下的:

1. odp.net 的连接名称

string connstring = @"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))

(CONNECT_DATA=(SID=ORCL)));User Id=AppServerUser;Password=1234;";

以上为odp方式的连接字符串

2. 我们默认就使用这个进行调试

这是vs 的提示

beee240d019467530321e51e73444528.png

也就是我们没有提供provider 简单我们加上示例的先试试

3. 加上的测试

这是加上的连接字符串   string tep = "Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)));User Id=AppServerUser;Password=1234;Provider=SQLOLEDB;";

4. vs 调试的提示

cb8c673a674676b128cfc23021893dc6.png

比较诡异的是我们使用的是oracle但是提示的是sql server 为什么?

5. 原因是我们使用的provider 并不是oracle 的

6.解决方式

使用oracle的provider 名称

应该是如下的:

Provider=OraOLEDB.Oracle;

7.最终的连接字符串

string tep = "Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)));User Id=AppServerUser;Password=1234;Provider=OraOLEDB.Oracle;";

8.使用vs 进行调试

8da0b94f722ea298ad322b3f86fc4df9.png

ok 数据获取成功

使用这种方式尽管是复杂了,但是这种方式可以获取远程以及本地的oracle 数据库

大家如果注意的话,这里的连接字符串是根据 tnsnames.ora 文件的格式获取的,实际上 这个文件的配置才是连接oracle 数据

库最重要的配置。希望对大家有帮助。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/617343
推荐阅读
相关标签
  

闽ICP备14008679号