C#编程调用Oracle数据库及存储过程教程
3星 · 超过75%的资源 需积分: 50 199 浏览量
更新于2024-09-17
3
收藏 19KB TXT 举报
"这篇教程详细介绍了如何在C#中调用Oracle数据库,特别是涉及到了调用存储过程并处理输出参数的方法。适合初学者学习C#与Oracle数据库的交互技术。"
在C#开发中,与Oracle数据库进行交互是常见的需求。本教程主要讲解了两种方法:一种是执行简单的SQL查询,另一种是调用Oracle存储过程,并处理存储过程的输出参数。以下将详细介绍这两个部分。
首先,执行SQL查询。在C#中,我们可以使用`OracleConnection`类来建立与Oracle数据库的连接,`OracleCommand`类来执行SQL命令。例如,下面的代码展示了如何打开一个连接,创建一个`OracleCommand`对象,设置其`CommandText`属性为SQL查询语句("select * from MyTable"),然后使用`ExecuteReader`方法获取数据,并通过`OracleDataReader`遍历查询结果:
```csharp
using System.Data.OracleClient;
using System.Data;
// 在按钮点击事件中
private void Button1_Click(object sender, System.EventArgs e)
{
string ConnectionString = "DataSource=sky;user=system;password=manager;";
OracleConnection conn = new OracleConnection(ConnectionString);
try {
conn.Open();
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from MyTable";
OracleDataReader odr = cmd.ExecuteReader();
while (odr.Read()) {
Response.Write(odr.GetOracleString(1).ToString()); // 获取第一列数据并输出
}
odr.Close();
} catch (Exception ee) {
Response.Write(ee.Message); // 输出错误信息
} finally {
conn.Close(); // 关闭连接
}
}
```
接下来,我们来看如何调用Oracle存储过程。存储过程通常包含输入、输出和 inout 参数。在C#中,可以通过`OracleCommand`的`Parameters`集合来添加这些参数。例如,假设我们有一个存储过程`usp_GetEmployeeDetails`,它接受员工ID作为输入参数,并返回一个包含员工详细信息的数据集:
```csharp
public void CallOracleProcedure()
{
string ConnectionString = "DataSource=mine;user=sys;password=sys;";
OracleConnection conn = new OracleConnection(ConnectionString);
OracleCommand cmd = new OracleCommand("usp_GetEmployeeDetails", conn);
cmd.CommandType = CommandType.StoredProcedure;
// 添加输入参数
cmd.Parameters.Add(new OracleParameter("emp_id", OracleDbType.Int32)).Value = 123;
// 添加输出参数
cmd.Parameters.Add(new OracleParameter("emp_details", OracleDbType.RefCursor, ParameterDirection.Output));
conn.Open();
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
DataSet ds = new DataSet();
adapter.Fill(ds);
// 现在ds包含了存储过程返回的数据
// 可以进一步处理ds中的数据
cmd.Parameters["emp_details"].Dispose(); // 清理输出参数
conn.Close();
}
```
在这个例子中,`usp_GetEmployeeDetails`存储过程被设置为`CommandType.StoredProcedure`,然后添加了输入参数`emp_id`和输出参数`emp_details`。输出参数使用`OracleDbType.RefCursor`类型,因为存储过程可能返回一个游标(数据集)。最后,使用`OracleDataAdapter`填充`DataSet`,以便在C#代码中处理返回的数据。
C#调用Oracle数据库可以通过`OracleConnection`、`OracleCommand`和`OracleDataReader`等类来实现,调用存储过程时需要处理参数,特别是输出参数,这通常涉及到`OracleParameter`对象的使用。在实际开发中,确保正确处理异常和关闭数据库连接是非常重要的,以保持应用程序的健壮性和资源的有效利用。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2020-12-26 上传
2020-12-22 上传
2009-08-11 上传
2020-06-30 上传
2008-11-28 上传
2023-06-13 上传
lifan185
- 粉丝: 1
- 资源: 4
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析