拖了很久今天终于在博客园写了自己第一篇随笔:

话不多说,我们直接进入正题:

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数据库以及一些简单的操作的更多相关文章

  1. PL/SQL连接oracle数据库

    PL/SQL连接oracle数据库 1.简单介绍 在不安装oracle数据库的情况下使用pl/sql连接远程oracle数据库. 2.详细步骤: a)      安装PL/SQL.依据自己的操作系统安 ...

  2. 简单的JDBC连接oracle数据库例子

    java连接Oracle数据库 JDBC(Java Data Base Connectivity,java数据库连接),那么我们该如何用java进行数据库的连接呢. import java.sql.C ...

  3. Java连接MySQL数据库和Oracle数据库并进行简单的SQL操作的一次尝试

    MySQL和Oracle的JDBC的maven dependency如下: <!-- mysql --> <dependency> <groupId>mysql&l ...

  4. php连接oracle数据库转载

    php连接oracle数据库及查询数据的方法 投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-12-29 这篇文章主要介绍了php连接oracle数据库及查询数据的方法 ...

  5. Windows server2008 搭建ASP接口访问连接oracle数据库全过程记录--备用

    真的是太不容易了,以前的时候在window server 2003上面搭建了一套asp+oracle的接口系统,就费了好大的劲儿,其实那会迷迷瞪瞪的也不知道怎么的就弄好了,也懒得管了.OK,从昨天到今 ...

  6. 使用C#连接ORACLE数据库

    一.使用OracleClient组件连接Oracle   .Net框架的System.Data.OracleClient.dll组件(ADO.Net组件),为连接和使用Oracle数据库提供了很大的方 ...

  7. PL/SQL Developer 连接Oracle数据库详细配置方法

    PL/SQL Developer 连接Oracle数据库详细配置方法 近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server).本文现对监听配置作一简单介绍,给出 ...

  8. 无需安装Oracle Client连接Oracle数据库

    介绍 当我们采用 ODP.NET 检索Oracle 数据库的时候,Oracle客户端是必须安装.假如当时电脑上没有安装Oracle客户端,就不能这么用了,这时候Oracle.ManagedDataAc ...

  9. 关于JDCB连接oracle数据库。

    1:什么是JDBC(百度可详细解释)               JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为 ...

随机推荐

  1. Jenkins构建完成后实现自动将war包部署到指定服务器

    首先我们需要确定我们的jenkins安装了:publish over ssh 插件,如果没有安装,到-->jenkins首页-->系统管理-->插件管理-->可选安装里面去搜 ...

  2. unity初探之黑暗之光(2)

    unity初探之黑暗之光(2) 一.设置角色跟随鼠标点击移动 思路:使用charactercollider的SimpleMove方法来控制角色的移动.通过摄像机的射线投射到地面,通过屏幕上的一个点也就 ...

  3. 【WXS数据类型】Function

    属性: 名称 值类型 说明 [Function].constructor [String] 返回值为“Function”,表示类型的结构字符串 [Function].length [Number] 返 ...

  4. python 终极篇 ---django 认证

    Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...

  5. lintcode735. Replace With Greatest From Right

    Given an array of integers, replace every element with the next greatest element (greatest element o ...

  6. 爬虫1.1-基础知识+requests库

    目录 爬虫-基础知识+requests库 1. 状态返回码 2. URL各个字段解释 2. requests库 3. requests库爬虫的基本流程 爬虫-基础知识+requests库 关于html ...

  7. 【MFC】VS2017新建完MFC后,没有界面,只有代码

    问题描述:双击.rc文件后提示在另一个编辑器中打开 解决方法整合: 1----- 打开工程之前先把.rc文件改个名称,然后打开工程双击解决方案管理器的.rc文件, 会显示"载入失败" ...

  8. "Generative Adversarial Nets" Notes

    - Ian J.Goodfellow 中文翻译:https://blog.csdn.net/wspba/article/details/54577236 代码实现:https://github.com ...

  9. 2018科大讯飞AI营销算法大赛全面来袭,等你来战!

    AI技术已成为推动营销迭代的重要驱动力.AI营销高速发展的同时,积累了海量的广告数据和用户数据.如何有效应用这些数据,是大数据技术落地营销领域的关键,也是检测智能营销平台竞争力的标准. 讯飞AI营销云 ...

  10. CryptoZombies学习笔记——Lesson3

    第三课就开始深入讲解solidity编程技巧了. chapter1: 智能合约的不变性. 合约一旦部署到以太坊后,就不可更改了,所以从一方面来说,智能合约代码的安全性是如此重要,因为一旦发现你的代码里 ...