.NET Framework C# 与Oracle数据库连接的方法
3.原来旧项目需要从System.Data.OracleClient升级Oracle.DataAccess.Client时,只需要将 Oracle.DataAccess.dll 添加引用至工程,移除原来微软的引用, using Oracle.DataAccess.Client 即可。Oracle 作为全球最大的数据库公司,在数据库方面拥有强大的能力,.net 平台也是一种流行的开发平台, c#与O
Oracle 作为全球最大的数据库公司,在数据库方面拥有强大的能力,.net 平台也是一种流行的开发平台, c#与Oracle数据库有几种链接方式
一,微软的System.Data.OracleClient
微软的System.Data.OracleClient可以直接引用,但是在使用时VS会提示“System.Data.OracleClient.OracleConnection”已过时,微软建议不要使用此方式,后续有可能会不支持,了解一下在生产环境建议不使用
二,Oracle自家的Oracle.DataAccess.Client
Oracle提供的数据库访问类库也叫ODP.net,功能和效率都比较有优势,可以不用安装Oracle客户端,直接拷贝到工程应用即可使用。由于微软在.net framework4中会将System.Data.OracleClient.dll 弃用,访问数据效率,速度方面,System.Data.OracleClient.dll与Oracle.DataAccess.dll这两种方式,微软的缺少oracle提供的类库有优势。.net 高版的平台已经不建议使用System.Data.OracleClient.dll。
odp.net的优点包括:
1.不需要安装客户端能访问服务器上的oracle数据实例,简化数据库访问的配置
2.采用数据库直连的方式,不需要配置TnsNames.Ora文件
使用方法请参考这位大侠的ODP.NET 使用方式
3.原来旧项目需要从System.Data.OracleClient升级Oracle.DataAccess.Client时,只需要将 Oracle.DataAccess.dll 添加引用至工程,移除原来微软的引用, using Oracle.DataAccess.Client 即可。连接字符串采用直连字串
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=***.***.***.***)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=***)));Persist Security Info=True;User ID=***;Password=***;
4.缺点,就是要区分用区分x86/x64版本。
5.使用代码:
using System;
2 using System.Data;
3 using Oracle.ManagedDataAccess.Client;
4
5 namespace ODP.NET
6 {
7 class Program
8 {
9 static void Main(string[] args)
10 {
11 OracleConnection conn = null;
12 try
13 {
14 conn = OpenConn();
15 var cmd = conn.CreateCommand();
16 cmd.CommandText = "select * from s_awb_master where rownum=1";
17 cmd.CommandType = CommandType.Text;
18 var reader = cmd.ExecuteReader();
19 while (reader.Read())
20 {
21 Console.WriteLine(string.Format("AwbPre:{0},AwbNo:{1}", reader["AwbPre"], reader["AwbNo"]));
22 }
23 }
24 catch (Exception ex)
25 {
26 Console.WriteLine(ex.Message);
27 }
28 finally
29 {
30 CloseConn(conn);
31 }
32 Console.Read();
33 }
34
35
36 static OracleConnection OpenConn()
37 {
38 OracleConnection conn = new OracleConnection();
39 conn.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=***.***.***.***)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=***)));Persist Security Info=True;User ID=***;Password=***;";
40 conn.Open();
41 return conn;
42 }
43
44 static void CloseConn(OracleConnection conn)
45 {
46 if (conn == null) { return; }
47 try
48 {
49 if (conn.State != ConnectionState.Closed)
50 {
51 conn.Close();
52 }
53 }
54 catch (Exception e)
55 {
56 Console.WriteLine(e.Message);
57 }
58 finally
59 {
60 conn.Dispose();
61 }
62 }
63 }
64 }
三,Oracle自家的Oracle.ManagedDataAccess.dll
.net framework 高版及 .net core 平台已经采用 Oracle.ManagedDataAccess.dll
下载dll和使用方法参考这位大侠的 用方法
1.dll下载:http://files.cnblogs.com/yjmyzz/Oracle.ManagedDataAccess.zip
2.可以直接添加引用
3.使用代码:
using System;
using Oracle.ManagedDataAccess.Client;
class Program
{
static void Main(string[] args)
{
// 连接字符串,需要根据实际情况配置
string connectionString = "User Id=your_username;Password=your_password;Data Source=your_oracle_db;";
// 创建Oracle连接
using (OracleConnection con = new OracleConnection(connectionString))
{
try
{
// 打开连接
con.Open();
// 创建Oracle命令
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "SELECT * FROM your_table"; // 替换为你的SQL查询
// 执行查询并获取结果
using (OracleDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
// 输出查询结果
Console.WriteLine(reader.GetString(0)); // 假设第一列是字符串类型
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
// 关闭连接
con.Close();
}
}
}
}
参考:https://www.cnblogs.com/yjmyzz/archive/2013/11/01/3400999.html
https://www.cnblogs.com/yjmyzz/archive/2013/11/01/3400999.html
https://www.cnblogs.com/masonlu/p/7514942.html
更多推荐
所有评论(0)