C#连接Oracle数据库教程
需积分: 6 137 浏览量
更新于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 上传
2012-04-23 上传
2017-08-23 上传
149 浏览量
2022-03-30 上传
137 浏览量
2020-03-03 上传
leg413
- 粉丝: 0
- 资源: 8
最新资源
- C语言快速排序算法的实现与应用
- KityFormula 编辑器压缩包功能解析
- 离线搭建Kubernetes 1.17.0集群教程与资源包分享
- Java毕业设计教学平台完整教程与源码
- 综合数据集汇总:浏览记录与市场研究分析
- STM32智能家居控制系统:创新设计与无线通讯
- 深入浅出C++20标准:四大新特性解析
- Real-ESRGAN: 开源项目提升图像超分辨率技术
- 植物大战僵尸杂交版v2.0.88:新元素新挑战
- 掌握数据分析核心模型,预测未来不是梦
- Android平台蓝牙HC-06/08模块数据交互技巧
- Python源码分享:计算100至200之间的所有素数
- 免费视频修复利器:Digital Video Repair
- Chrome浏览器新版本Adblock Plus插件发布
- GifSplitter:Linux下GIF转BMP的核心工具
- Vue.js开发教程:全面学习资源指南