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,可以为 ...
随机推荐
- 每天看一片代码系列(二):WebSocket-Node
简介 我们都知道,websocket主要是通过在浏览器和服务端建立长连接,继而实现二者的相互数据通信.不同于HTTP的轮询,它不会有大量无效的HTTP消息交换,从而节省了花销.websocket其实就 ...
- netty之编解码
1.netty的编码和解码,在数据传输的时候,考虑数据安全,数据完整性都是很有必要的.这里主要是介绍netty3和netty5的编解码方式.其实从StringEncoder和StringDecoder ...
- cocos2dx - ActionManager内存泄露
ActionManager memory leak cocos2d-x3.7 都3.7了还有这样的bug,真是好难过,不过还是好开源的,谁都可以贡献一下 问题描述: 当创建一个node,并让它run一 ...
- quartz与Spring整合
1.创建maven工程,导入spring和quartz相关依赖 2.创建任务类 3.在spring配置文件中配置任务类 4.在spring配置文件中配置JobDetail 5.在spring配置文件中 ...
- MongoDB之我是怎么成为Primary节点的
此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Primary(主)是MongoDB复制集中的最重要的角色,是能够接受客户端/Driver写请求的节点,(读 ...
- jmeter多台压力机测试
jmeter控制机会自动将脚本发送至压力机 1.控制机配置 jmeter.properties中配置: remote_hosts=ip1:1099,ip2:1022,ip3:1099 将压力机ip+p ...
- Pycharm中查看方法的源码
方法1.鼠标放在函数上,Ctrl+B,看源码 方法2.将光标移动至要查看的方法处,按住ctrl 键,点击鼠标左键,即可查看该方法的源码.
- 如何搭建本地svn服务器和搭建本地Git服务器
搭建git本地服务器使用的软件有很多,例如:gitlab,gitblit,gitbucket,gogs,gitolite,具体比较:http://softlab.sdut.edu.cn/blog/su ...
- [JSON].set(keyPath, value)
语法:[JSON].set( keyPath, value ) 返回:[True | False] 说明:设置键值 参数: keyPath [keyPath 必需] 键名路径字符串 value ...
- 【jmeter进阶之逻辑控制器】
jmeter进阶之逻辑控制器 转载 https://www.cnblogs.com/malinalian/p/10491946.html 常用的逻辑控制器 1,循环控制器:可以设置该控制器内 ...