在Oracle数据库上构建.NET应用程序

添加引用

  因为我们的工程必须与 Oracle 数据库连接,因此必须添加一个到包含我们选择的数据供应程序的 dll 的引用。 在 Solution Explorer 内,选择 References 节点,右键单击并选择 Add Reference。 或者,您可以转至菜单栏并选择 Project,然后选择 Add Reference

图 3

图 3
图 3: 添加引用


  出现 Add Reference 对话框。
图 4

图 4
图 4: 选择 ODP.NET 管理的数据供应程序


  从列表中选择 Oracle.DataAccess.dll,然后单击 Select 按钮,最后单击 OK 按钮,使您的工程能够找到 ODP.NET 数据供应程序。
图 5

图 5
图 5: 选择 Oracle Managed Provider 之后的解决方案浏览器


  VB.NET/C# 语句

  在添加引用之后,标准的做法是要添加 VB.NET Imports 语句、C# using 语句或 J# import 语句。 从技术上说这些语句不是必要的,但是使用它们可以让您不需用冗长且完整名称来引用数据库对象。

  按照惯例,这些语句出现在代码文件的顶部或顶部附近,在命名空间或类声明之前。

Imports System.Data              ' VB.NET 
Imports Oracle.DataAccess.Client ' ODP.NET Oracle managed provider 

using System.Data;              // C# 
using Oracle.DataAccess.Client; // ODP.NET Oracle managed provider 

import System.Data.*;            // J# 
import Oracle.DataAccess.Client; // ODP.NET Oracle managed provider 

 

  连接字符串和对象

  Oracle 连接字符串和 Oracle 名称解析是不可分的。 假定我们在 tnsnames.ora 文件中定义了一个数据库别名 OraDb,如下:

OraDb= 
  (DESCRIPTION= 
    (ADDRESS_LIST= 
      (ADDRESS=(PROTOCOL=TCP)(HOST=OTNSRVR)(PORT=1521)) 
    ) 
    (CONNECT_DATA= 
      (SERVER=DEDICATED) 
      (SERVICE_NAME=ORCL) 
    ) 
  ) 

  要使用上面所述的在 tnsnames.ora 文件中定义的 OraDb 别名,您需要使用以下语法:

Dim oradb As String = "Data Source=OraDb;User Id=scott;Password=tiger;" ' VB.NET 

string oradb = "Data Source=OraDb;User Id=scott;Password=tiger;"; // C# 

  不过,您可以修改连接字符串,这样就不需用 tnsnames.ora 文件。 只需用在 tnsnames.ora 文件中定义别名的语句替换别名即可。

' VB.NET  
Dim oradb As String = "Data Source=(DESCRIPTION=" _ 
           + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=OTNSRVR)(PORT=1521)))" _ 
           + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));" _ 
           + "User Id=scott;Password=tiger;" 

string oradb = "Data Source=(DESCRIPTION="              // C# 
             + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=OTNSRVR)(PORT=1521)))" 
             + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));" 
             + "User Id=scott;Password=tiger;"; 

  正如您在上面看到的那样,用户名和口令是以不加密的文本形式嵌入到连接字符串中的。 这是创建连接字符串的最简单的方法。 然而,从安全的角度而言不加密文本的方法是不可取的。 而且,您需要了解编译的 .NET 应用程序代码仅比不加密文本形式的源代码文件稍微安全一点。 可以非常简便的反编译 .NET dll 和 exe 文件,进而查看原始的不加密文本形式的内容。 (加密实际上是正确的解决方案,但这个主题与我们这里的讨论相差太远。)

  接下来,您必须从连接类中完成一个连接对象的实例化。 连接字符串必须与连接对象关联。

Dim conn As New OracleConnection(oradb) ' VB.NET 

OracleConnection conn = new OracleConnection(oradb); // C# 

  注意,通过将连接字符串传递给连接对象的构造器(该构造器进行了重载),连接字符串与连接对象建立关联。 构造函数的其他重载允许以下这些替代的语法:

Dim conn As New OracleConnection() ' VB.NET 
conn.ConnectionString = oradb 

OracleConnection conn = new OracleConnection(); // C# 
conn.ConnectionString = oradb; 

  在连接字符串与连接对象建立关联之后,使用 Open 方法来创建实际的连接。

conn.Open() ' VB.NET 

conn.Open(); // C# 


  我们将在稍后介绍错误处理。

  Command 对象

  Command 对象用于指定执行的 SQL 命令文本 — SQL 字符串或存储过程。 类似于 Connection 对象,它必须从完成其类的实例化,并且它拥有一个重载的构造函数。

Dim sql As String = "select dname from dept where deptno = 10" ' VB.NET 
Dim cmd As New OracleCommand(sql, conn) 
cmd.CommandType = CommandType.Text 

string sql = "select dname from dept where deptno = 10"; // C# 
OracleCommand cmd = new OracleCommand(sql, conn); 
cmd.CommandType = CommandType.Text; 


  不同的重载,语法的结构稍微有点不同。 Command 对象有用于执行命令文本的方法。 不同的方法适用于不同类型的 SQL 命令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GADFLYGIS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值