C#连接Oracle数据库教程
需积分: 6 187 浏览量
更新于2024-10-14
收藏 3KB TXT 举报
"这篇文章主要介绍了在C#环境下如何连接并操作Oracle数据库,通过示例代码展示了使用DataSet、OracleDataAdapter、DataTable以及OracleDataReader等组件进行数据查询和显示的方法。"
在C#开发中,与Oracle数据库的交互是常见的任务。本文以"连接Oracle数据库"为主题,详细介绍了使用C#连接Oracle数据库的三种不同方式:通过DataSet获取数据、通过DataReader逐行读取数据以及通过Command执行SQL命令。
首先,连接Oracle数据库需要用到`System.Data.OracleClient.dll`这个库,引入命名空间`using System.Data.OracleClient`。以下是一个简单的连接示例:
```csharp
OracleConnection oraCon = new OracleConnection("userid=112;datasource=wmatech;password=112");
```
这里的连接字符串包含了数据库的用户ID、数据源(服务名或TNS名称)和密码。
接下来,演示了如何使用DataSet和OracleDataAdapter来获取和填充数据:
```csharp
OracleDataAdapter oraDap = new OracleDataAdapter("select * from actor", oraCon);
DataSet ds = new DataSet();
oraDap.Fill(ds);
DataTable _table = ds.Tables[0];
```
这里创建了一个OracleDataAdapter对象,传入一个SQL查询(本例中为"select * from actor"),然后使用Fill方法将查询结果填充到DataSet的DataTable中。DataTable可以通过索引访问,如`_table`即为查询结果的第一张表。
展示数据可以使用DataGrid控件:
```csharp
int count = _table.Rows.Count;
DataGrid1.DataSource = _table;
DataGrid1.DataBind();
```
对于逐行读取数据,可以使用OracleDataReader。下面的代码展示了如何通过Reader逐行读取并生成HTML字符串:
```csharp
OracleCommand oraCmd = new OracleCommand("select * from actor", oraCon);
oraCon.Open();
OracleDataReader oraRD = oraCmd.ExecuteReader();
string szHtml = "";
while (oraRD.Read())
{
szHtml += oraRD[0].ToString() + " " + oraRD[1].ToString() + " " + oraRD[2].ToString() + "<br>";
}
oraRD.Close();
oraCon.Close();
Response.Write(szHtml);
```
最后,还可以通过OracleCommand直接执行SQL命令,并利用ExecuteNonQuery()或ExecuteScalar()方法来处理增删改查操作。例如:
```csharp
OracleCommand oraCmd = new OracleCommand("INSERT INTO actor VALUES (:col1, :col2)", oraCon);
oraCmd.Parameters.AddWithValue(":col1", value1);
oraCmd.Parameters.AddWithValue(":col2", value2);
oraCmd.ExecuteNonQuery();
```
以上内容详述了C#与Oracle数据库的连接、数据查询和数据处理过程,对于开发者来说是理解和实践C#数据库编程的基础。
2009-10-31 上传
2009-09-21 上传
2018-11-23 上传
2013-12-07 上传
2023-04-28 上传
2023-06-28 上传
leg413
- 粉丝: 0
- 资源: 8
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建