C# 连接Oracle数据库以及一些简单的操作
拖了很久今天终于在博客园写了自己第一篇随笔:
话不多说,我们直接进入正题:
1.连接数据库
using (OracleConnection conn = new OracleConnection("data source=192.168.97.60/orcl;User Id=abc;Password=abc;"))
{
conn.Open();
}
using(....){.......}:using的使用就是在与资源的释放。
连接数据库要知道数据库的数据源data source,用户名User Id,以及密码Password,正确填写这些,在用上面的代码,一般连接都是成功的。
2.数据库的增、删、改
using (OracleConnection conn = new OracleConnection("data source=192.168.97.60/orcl;User Id=abc;Password=abc;"))
{
conn.Open();
using(OracleCommand cmd=conn.CreateCommand())
{
cmd.CommandText = "INSERT INTO SZPT(id) VALUES (sys_guid())";
cmd.ExecuteNonQuery();
}
}
必须打开数据库连接之后才可以进行增删改,就是说conn.Open()要放在前面,进行增删改就用ExecuteNonQuery。
着重说明一下sys_guid(),sys_guid()会生成一个独一无二的32的字符串,来作为唯一标示的表的主键。
3.获取返回只有一行一列的数据
using (OracleConnection conn = new OracleConnection("data source=192.168.97.60/orcl;User Id=abc;Password=abc;"))
{
conn.Open();
using(OracleCommand cmd=conn.CreateCommand())
{
cmd.CommandText = "SELECT COUNT(*) FROM SZPT";
decimal i= (decimal)cmd.ExecuteScalar();
MessageBox.Show(i.ToString());
}
}
获取一行一列的数据用ExecuteScalar
4.获取返回的表
using (OracleConnection conn = new OracleConnection(connstr))
{
conn.Open();
using(OracleCommand cmd=new OracleCommand())
{
cmd.Connection = conn;
cmd.CommandText = sql;
// cmd.Parameters.AddRange(parameters);
OracleDataAdapter ada = new OracleDataAdapter(cmd);
DataSet ds = new DataSet();
ada.Fill(ds);
return ds.Tables[0];
}
}
5.获取返回的ExecuteReader
using (OracleConnection conn = new OracleConnection(connstr))
{
conn.Open();
using(OracleCommand cmd=new OracleCommand())
{
cmd.CommandText = sql;
//cmd.Parameters.AddRange(parameters);
OracleDataReader reader= cmd.ExecuteReader();
while (reader.Read())
{
reader.GetString(0);
}
}
}
注意:DataSet获得的表数据会存储到客户端,而ExecuteReader获得的数据是存储在服务端的,用ExecuteReader获取数据的时候,如果和服务端断开了,数据也就不会再获得,而4当数据存储到客户端后,即使与服务端断开数据依然会有。
所以当获取的数据量不大的时候可以用DataSet把数据存储到客户端,如果获取的数据量很大,最好用ExecuteReader这样不至于客户端的内存占用太大而至于性能不好。
C# 连接Oracle数据库以及一些简单的操作的更多相关文章
- PL/SQL连接oracle数据库
PL/SQL连接oracle数据库 1.简单介绍 在不安装oracle数据库的情况下使用pl/sql连接远程oracle数据库. 2.详细步骤: a) 安装PL/SQL.依据自己的操作系统安 ...
- 简单的JDBC连接oracle数据库例子
java连接Oracle数据库 JDBC(Java Data Base Connectivity,java数据库连接),那么我们该如何用java进行数据库的连接呢. import java.sql.C ...
- Java连接MySQL数据库和Oracle数据库并进行简单的SQL操作的一次尝试
MySQL和Oracle的JDBC的maven dependency如下: <!-- mysql --> <dependency> <groupId>mysql&l ...
- php连接oracle数据库转载
php连接oracle数据库及查询数据的方法 投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-12-29 这篇文章主要介绍了php连接oracle数据库及查询数据的方法 ...
- Windows server2008 搭建ASP接口访问连接oracle数据库全过程记录--备用
真的是太不容易了,以前的时候在window server 2003上面搭建了一套asp+oracle的接口系统,就费了好大的劲儿,其实那会迷迷瞪瞪的也不知道怎么的就弄好了,也懒得管了.OK,从昨天到今 ...
- 使用C#连接ORACLE数据库
一.使用OracleClient组件连接Oracle .Net框架的System.Data.OracleClient.dll组件(ADO.Net组件),为连接和使用Oracle数据库提供了很大的方 ...
- PL/SQL Developer 连接Oracle数据库详细配置方法
PL/SQL Developer 连接Oracle数据库详细配置方法 近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server).本文现对监听配置作一简单介绍,给出 ...
- 无需安装Oracle Client连接Oracle数据库
介绍 当我们采用 ODP.NET 检索Oracle 数据库的时候,Oracle客户端是必须安装.假如当时电脑上没有安装Oracle客户端,就不能这么用了,这时候Oracle.ManagedDataAc ...
- 关于JDCB连接oracle数据库。
1:什么是JDBC(百度可详细解释) JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为 ...
随机推荐
- 浅谈Hash在多个字符串匹配类型问题中的应用
在生活中们有时会遇到一些有关字符串匹配的问题. 这时打暴力往往显得很愚蠢,效率低下. 所以就需要一些算法和数据结构来提高效率. Hash Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把 ...
- P1209 [USACO1.3]修理牛棚 Barn Repair
P1209 [USACO1.3]修理牛棚 Barn Repair 题目描述 在一个夜黑风高,下着暴风雨的夜晚,farmer John的牛棚的屋顶.门被吹飞了. 好在许多牛正在度假,所以牛棚没有住满. ...
- MySQL高级-锁机制
一.概述 1.定义 2.锁的分类 ①从对数据操作的类型(读\写)分 读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响. 写锁(排它锁):当前写操作没有完成前,它会阻断其他写锁和读锁 ...
- android分析windowManager、window、viewGroup之间关系(一)
本文将主要介绍addview方法,在windowManager.window.viewGroup中的实现原理.首先将介绍这些类结构关系,然后分析其内在联系,介绍实现原理,最后介绍重要的一个参数wind ...
- java 多维数组转化为字符串
int[][] a = {{1,2,3},{4,5,7}}; System.out.println(Arrays.deepToString(a)); Arrays.deepToString()此方法是 ...
- 巧用浏览器F12调试器定位系统前后端bug
做测试的小伙伴可能用过httpwatch,firebug,fiddler,charles等抓包(数据包)工具,但实际上除了这些还有一个简单实用并的抓包工具,那就是浏览器的F12调试器. httpwat ...
- Linux命令应用大词典-第17章 软件包管理
17.1 rpm:RPM软件包管理器 17.2 rpmargs:处理RPM软件包 17.3 rpmbuild:构建RPM软件包 17.4 rpmdiff:比较两个软件包之间的不同 17.5 rpmel ...
- 初学Direct X(8) ——碰撞检测
初学Direct X(8) --碰撞检测 真正让一个游戏鹤立鸡群的是程序对碰撞的响应有多好,这里介绍两种检测的方法: 1) 基于边框的碰撞检测 2) 基于距离的碰撞检测 1. 基于边框的碰撞检测 1. ...
- Ubuntu—查看进程并关闭进程
环境:Ubuntu终端 命令:ps -aux 功能:查看进程信息 命令:kill 进程号(PID) 功能:杀死进程
- vue 与jq 的对比
vue.react和angular,众所周知,他们是前端框架的3个大佬.这篇主要想对比一下用vue和用jq的区别,至于和其他框架的对比,我想vue的官网说的更为详细. 我算是独自用vue写过一个小型项 ...