一、数据库连接

Oracle 数据提供程序,位于System.Data.OracleClient 命名空间.( .NET 4 以后的版本,会将不在维护和更新了)

第一步:引入命名空间

在程序的开头写上下面的代码

using System.Data.OracleClient;

第二步:引入对应组件

点击项目-右键-添加引用-找到System.Data.OracleClient-确定.

第三步:写代码

 private void button1_Click(object sender, EventArgs e)
{
string str="server=.;data source=orcl;uid=xxx;pwd=xxx";
      //上面这句需要安装Oracle客户端并配置tnsnames.ora
//string str = "User ID=xxx;Password=xxx;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)));";
//上面这句需要安装Oracle客户端不需配置tnsnames.ora
OracleConnection conn = new OracleConnection(str);
conn.Open();
if (conn.State == ConnectionState.Open)
{
MessageBox.Show("连接成功");
}
conn.Close();
}

  database和data source的区别?

  database是数据库的意思,用sqlserver数据库是需要用这个。

  data source是数据资源的意思,用Oracle数据库时用这个。

if (conn.State == ConnectionState.Open)的意思? 
用conn.State判断当前数据库是关闭还是打开的,而ConnectionState.Open得意思是打开。所以如果数据库是打开状态就可以为“真”。 这句话是用来判断数据库是不是打开状态的。(前提是要引用using System.Data;命名空间)

 
安装oracle后 tnsnames.ora文件目录
D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN

ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = ))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

 

二、执行sql语句(Command

OracleCommand 命令对象的名称 =new OracleCommand(SQL语句,连接对象名称);

共分为两种操作:增删改和查询操作

当需要使用增删改操作时

string str1="insert into student values(1,'tom')";
OracleCommand cmd = new OracleCommand(str1,conn);
cmd.ExecuteReader();

当需要查询时 

string str1="select * from student";
OracleCommand cmd = new OracleCommand(str1,conn);
OracleDataReader dr=cmd.ExecuteReader();//把查询的结果传给OracleDataReader的对象
//下一步读取数据

读取数据

OracleDataReader对象获取到值以后就需要读取数据了

首先

 dr.read();//把箭头指向表格的第一行,第一列

然后

dr["表的字段名"]或者dr[下标数字(相当于数组)] 就可以读取指定的数据了

假设

表格的第一个字段是id,第二个字段是name

例如

dr["id"] 或者dr[0] 就能读出第一行第一列的数据

dr["name"]或者di[1]就能读出第一行第二列的数据

如果想要第二行的数据就需要用到循环

while (dr.Read())//假设这是一个控制台程序
{
Console.Write(dr[]);
Console.WriteLine(dr[]);
}

command 有三个常用方法

1、

cmd.ExecuteNonQuery();//执行sql语句并返回受影响的行数。通常用来执行增删改。

2、

OracleDataReader dr=cmd.ExecuteReader();//执行sql语句并把查询的内容放到OracleDataReader对象里。用来做查询

3、

cmd.ExecuteScalar();//执行sql语句,并返回结果集中的第一行第一列。通常和函数配合使用,为了计算某个值。

三、 DataReader

OracleDataReader的属性:HasRows 用来判断结果是否有数据,有的话返回True

if(dr.HasRows)
{
MessageBox.Show("数据表中有值");
}

OracleDataReader的方法:

dr.read();//
dr.Close();//关闭OracleDataReader对象。如果一个OracleConnection创建了多个OracleDataReader,则在创建OracleDataReader之前需要先管壁上一个。

 

四、数据适配器 DataAdapter对象

DataAdapter对象是一个数据适配器对象,在DataSet与数据源之间起到桥梁的作用。它有四个属性

1、 SelectCommand ,用来向数据库发送查询SQL语句

2、DeleteCommand,向数据库发送删除语句

3、InsertCommand,向数据库发送插入语句

4、UpdateCommand,向数据库发送更新语句

DataAdapter的方法

1 、Fill方法:用于填充DataSet数据集

da.Fill(ds,"student");//括号里的参数(Data对象,表名);
dataGridView1.DataSource = ds.Tables["表名"];
//或者dataGridView1.DataSource = ds.Tables[0];

2、Updata方法:用来更新数据库

 增

五、数据集DataSet

(1)OracleClient数据库操作(淘汰)的更多相关文章

  1. c#数据库操作大全

    原文:c#数据库操作大全 1.提取单条记录 //using System.Data; //using System.Data.SqlClient;  using (SqlConnection cn = ...

  2. C# Oracle数据库操作类实例详解

    本文所述为C#实现的Oracle数据库操作类,可执行超多常用的Oracle数据库操作,包含了基础数据库连接.关闭连接.输出记录集.执行Sql语句,返回带分页功能的dataset .取表里字段的类型和长 ...

  3. 使用ado.net打造通用的数据库操作类

    最近在项目中使用中碰到了这样一种情况,查询的数据是从Oracle中获取的,但是记录下来的数据是存在Sql Server中(企业Oracle数据库管理太严,没办法操作).而且我在之前的工作中也碰到过使用 ...

  4. (转)C# Oracle数据库操作类

    原文地址:http://www.cnblogs.com/haibing0107/p/6143922.html using System;using System.Data;using System.C ...

  5. Oracle数据库操作类及连接方法

    创建DataBaseAccess引用库下面包括DBConnectionString.cs,DBType.cs ,SysName.cs 三个类 DBConnectionString: using Sys ...

  6. C# Oracle数据库操作类

    using System; using System.Data; using System.Collections.Generic; using System.Configuration; using ...

  7. 如何在高并发环境下设计出无锁的数据库操作(Java版本)

    一个在线2k的游戏,每秒钟并发都吓死人.传统的hibernate直接插库基本上是不可行的.我就一步步推导出一个无锁的数据库操作. 1. 并发中如何无锁. 一个很简单的思路,把并发转化成为单线程.Jav ...

  8. 【知识必备】ezSQL,最好用的数据库操作类,让php操作sql更简单~

    最近用php做了点小东东,用上了ezSQL,感觉真的很ez,所以拿来跟大家分享一下~ ezSQL是一个非常好用的PHP数据库操作类.著名的开源博客WordPress的数据库操作就使用了ezSQL的My ...

  9. MySQL 系列(二) 你不知道的数据库操作

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 本章内容: 查看\创建\使用\删除 数据库 用户管理及授权实战 局域网 ...

随机推荐

  1. Pascal小游戏 文件的产生

    一个整人的Pascal小程序 运行之后硬盘里面会有一大堆垃圾,当然更好的方法当然不是这样做! var a,b,c,d:char;beginfor a:='0' to '9' dofor b:='0' ...

  2. maven常用命令 与语法

    pom.xml 中个元素的意义 groupId 规定了这个项目属于哪个组,或者公司之类的 artifactId 定义了当前maven项目在组中唯一的ID version 版本号 常用命令 mvn co ...

  3. ul中li元素横向排列且不换行

    ul { white-space: nowrap; } li { display: inline-block; }     white-space 属性设置如何处理元素内的空白. normal 默认. ...

  4. Python网络编程(http协议,IO多路复用、select内核监听)

    前言: 什么是IO? 分为IO设备和IO接口两个部分 如Linux系统,I/O操作可以有多种方式 比如DIO(DirectI/O) AIO(AsynchronousI/O异步I/O) Memory-M ...

  5. php天龙八部

    <?php /* 一.操作步骤: 连接MySQL数据库 判断是否连接成功 选择数据库 设置字符集 准备SQL语句 向MySQL服务发送SQL语句 解析处理结果集 释放结果集,关闭数据库连接 */ ...

  6. 软工实践 - 第十四次作业 Alpha 冲刺 (5/10)

    队名:起床一起肝活队 组长博客:https://www.cnblogs.com/dawnduck/p/9992094.html 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去 ...

  7. Visual Studio2015 、2017中如何支持MYSQL数据源

    原文:Visual Studio2015 .2017中如何支持MYSQL数据源 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/ght886/arti ...

  8. 使用Cookie保存用户和密码然后自动登录

    login.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  9. BZOJ 1876 [SDOI2009] SuperGcd | PY好题

    题面就是让你求两个超级大整数,求GCD 题解: 题目本意应该是出题人想考考高精度取膜 但是可以通过一种神奇的Stein算法来做 由J. Stein 1961年提出的Stein算法很好的解决了欧几里德算 ...

  10. BZOJ1196 [HNOI2006]公路修建问题 【二分 + Kruskal】

    题目 OI island是一个非常漂亮的岛屿,自开发以来,到这儿来旅游的人很多.然而,由于该岛屿刚刚开发不久,所以那里的交通情况还是很糟糕.所以,OIER Association组织成立了,旨在建立O ...