写在前面:

常用数据库:

SQLserver:https://www.cnblogs.com/mexihq/p/11636785.html

Oracle:https://www.cnblogs.com/mexihq/p/11700741.html

MySQL:https://www.cnblogs.com/mexihq/p/12463423.html

Access:https://www.cnblogs.com/mexihq/p/12466970.html

类似于上篇有关SQLserver的C#封装,小编对Oracle数据库进行了相应的封装,方便后期开发使用,主要包括Oracle数据库的连接、增、删、改、查,如有什么问题还请各位大佬指教。后续也将对其他几个常用的数据库进行相应的整理。话不多说,直接开始码代码。

引用:

由于微软在.Net框架4.0中已经决定撤销使用System.Data.OracleClient,造成在VS中无法连接Oracle数据库,但它还依旧存在于.Net架构中,我们可以通过自己引用。具体方法如下:
(1)在需要引用的程序集引用文件夹上右击,选择添加引用
(2)选择浏览选项
(3)找到目录 C:\Windows\Microsoft.NET\Framework\v2.0.50727
(4)找到 System.Data.OracleClient.dll 文件
(5)点击确定。OK,引用完成

using System.Data;              //DataSet引用集
using System.Data.OracleClient; //oracle引用

先声明一个SqlConnection

private OracleConnection oracle_con;//声明一个OracleConnection方便使用 

Oracle打开:

/// <summary>
/// Oracle open
/// </summary>
/// <param name="link">link statement</param>
/// <returns>Success:success; Fail:reason</returns>
public string Oracle_Open(string link)
{
  try
  {
    oracle_con = new OracleConnection(link);
    oracle_con.Open();
    return "success";
  }
  catch (Exception ex)
  {
    return ex.Message;
  }
}

Oracle关闭:

/// <summary>
/// Oracle close
/// </summary>
/// <returns>Success:success Fail:reason</returns>
public string Oracle_Close()
{
  try
  {
    if (oracle_con == null)
    {
      return "No database connection";
    }
    if (oracle_con.State == ConnectionState.Open)
    {
      oracle_con.Close();
      oracle_con.Dispose();
    }
    else
    {
      if (oracle_con.State == ConnectionState.Closed)
      {
        return "success";
      }
      if (oracle_con.State == ConnectionState.Broken)
      {
        return "ConnectionState:Broken";
      }
    }
    return "success";
  }
  catch (Exception ex)
  {
    return ex.Message;
  }

}

Oracle的增删改:

/// <summary>
/// Oracle insert,delete,update
/// </summary>
/// <param name="sql">insert,delete,update statement</param>
/// <returns>Success:success + Number of affected rows; Fail:reason</returns>
public string Oracle_Insdelupd(string sql)
{
  try
  {
    int num = 0;
    if (oracle_con == null)
    {
      return "Please open the database connection first";
    }
    if (oracle_con.State == ConnectionState.Open)
    {
      OracleCommand oracleCommand = new OracleCommand(sql, oracle_con);
      num = oracleCommand.ExecuteNonQuery();
    }
    else
    {
      if (oracle_con.State == ConnectionState.Closed)
      {
        return "Database connection closed";
      }
      if (oracle_con.State == ConnectionState.Broken)
      {
        return "Database connection is destroyed";
      }
    }
    return "success" + num;
  }
  catch (Exception ex)
  {
    return ex.Message.ToString();
  }
}

Oracle的查:

/// <summary>
/// Oracle select
/// </summary>
/// <param name="sql">select statement</param>
/// <param name="record">Success:success; Fail:reason</param>
/// <returns>select result</returns>
public DataSet Oracle_Select(string sql, out string record)
{
  try
  {
    DataSet dataSet = new DataSet();
    if (oracle_con != null)
    {
      if (oracle_con.State == ConnectionState.Open)
      {
        OracleDataAdapter oracleDataAdapter = new OracleDataAdapter(sql, oracle_con);
        oracleDataAdapter.Fill(dataSet, "sample");
        oracleDataAdapter.Dispose();
        record = "OK";
        return dataSet;
      }
      if (oracle_con.State == ConnectionState.Closed)
      {
        record = "Database connection closed";
      }
      else if (oracle_con.State == ConnectionState.Broken)
      {
        record = "Database connection is destroyed";
      }
    }
    else
    {
      record = "Please open the database connection first";
    }
    record = "error";
    return dataSet;
  }
  catch (Exception ex)
  {
    DataSet dataSet = new DataSet();
    record = ex.Message.ToString();
    return dataSet;
  }
}

小编发现以上这种封装方式还是很麻烦,每次对Oracle进行增删改查的时候还得先打开数据库,最后还要关闭,实际运用起来比较麻烦。因此对上面两个增删改查的方法进行了重载,在每次进行操作时都先打开数据库,然后关闭数据库。

/// <summary>
/// Oracle insert,delete,update
/// </summary>
/// <param name="sql">insert,delete,update statement</param>
/// <param name="link">link statement</param>
/// <returns>Success:success + Number of affected rows; Fail:reason</returns>
public string Oracle_Insdelupd(string sql, string link)
{
  try
  {
    int num = 0;
    using (OracleConnection oracleConnection = new OracleConnection(link))
    {
      DataSet dataSet = new DataSet();
      oracleConnection.Open();
      OracleCommand oracleCommand = new OracleCommand(sql, oracleConnection);
      num = oracleCommand.ExecuteNonQuery();
      oracleConnection.Close();
      return "success" + num;
    }
  }
  catch (Exception ex)
  {
    return ex.Message.ToString();
  }
}

/// <summary>
/// Oracle select
/// </summary>
/// <param name="sql">select statement</param>
/// <param name="link">link statement</param>
/// <param name="record">Success:success; Fail:reason</param>
/// <returns>select result</returns>
public DataSet Oracle_Select(string sql, string link, out string record)
{
  try
  {
    using (OracleConnection oracleConnection = new OracleConnection(link))
    {
      DataSet dataSet = new DataSet();
      oracleConnection.Open();
      OracleDataAdapter oracleDataAdapter = new OracleDataAdapter(sql, oracleConnection);
      oracleDataAdapter.Fill(dataSet, "sample");
      oracleDataAdapter.Dispose();
      oracleConnection.Close();
      record = "success";
      return dataSet;
    }
  }
  catch (Exception ex)
  {
    DataSet dataSet = new DataSet();
    record = ex.Message.ToString();
    return dataSet;
  }
}

C#学习--Oracle数据库基本操作(连接、增、删、改、查)封装的更多相关文章

  1. Django(十)模型:django模型类对数据库的:增/删/改/查、自关联、管理器、元选项(指定表名)

    一.插入.更新和删除 调用一个模型类对象的save方法的时候就可以实现对模型类对应数据表的插入和更新. 调用一个模型类对象的delete方法的时候就可以实现对模型类对应数据表数据的删除. 二.自关联 ...

  2. 怎样从C#中打开数据库并进行 增 删 改 查 操作

    首先 在C#中引用数据库的操作! (因为我们用的是SQLserver数据库,所以是SqlClient) using System.Data.SqlClient; 1:要实现对数据库的操作,我们必须先登 ...

  3. Mysql基本操作语句 增-删-改-查

    增 INSERT INTO 表名(属性名1,属性名2) VALUES(值1,值2) 删 DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子 ...

  4. Java操作MongoDB:连接&增&删&改&查

    1.连接 ①方式一 MongoClientOptions.Builder builder = MongoClientOptions.builder(); //可以通过builder做各种详细配置 Mo ...

  5. iOS sqlite3 的基本使用(增 删 改 查)

    iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...

  6. python学习-62 类属性的增 删 该 查

    类属性 1.类属性 类属性又称为静态变量,或者是静态数据.这些数据是与它们所属的类对象绑定的,不依赖于任何类实例. 2.增 删 改 查 class zoo: country = 'china' def ...

  7. iOS FMDB的使用(增,删,改,查,sqlite存取图片)

    iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...

  8. 好用的SQL TVP~~独家赠送[增-删-改-查]的例子

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  9. django ajax增 删 改 查

    具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...

随机推荐

  1. 那些年,我们误解的 JavaScript 闭包

    说到闭包,大部分的初始者,都是谈虎色变的.最近对闭包,有了自己的理解,就感觉.其实我们误解闭包.也被网上各种说的闭包的解释给搞迷糊. 一句话:要想理解一个东西还是看权威的东西. 下面我来通俗的讲解一个 ...

  2. dropwizard-core模块和应用启动分析

    简介 Dropwizard是一款开发运维友好.高效.RESTful web服务的框架.Dropwizard将稳定.成熟的java生态系统中的库整合为一个简单的.轻量级的包,即跨越了库和框架之间的界限, ...

  3. Net基础篇_学习笔记_第十天_方法_方法的练习

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. python+selenium一:对浏览器的常规操作

    # 1.打开Firefox浏览器 from selenium import webdriverdriver = webdriver.Firefox()driver.get("https:// ...

  5. day 3 总结

  6. shiro+spring

    公司自用的管理系统使用了shiro,但是对于这个登录页面跳转.登录的过程逻辑以及登录成功或者失败的跳转页面一直不理解,查看相关文档资料,整理出一些结果并本地调试测试,记录下备以后回顾之用. 对于spr ...

  7. webstorm中关闭烦人Eslint语法检查

    打开许久没打开的webstrom,以前关闭的配置不知道怎么又乱了,react项目到处报错,真是没法忍. 关闭eslint位置:File-->Setting-->Languages& ...

  8. Java连载35-类总结、空指针异常

    一.总结 1.栈内存中主要存储的是方法体中的局部变量 2.对象内部有实例变量,实例变量存储在堆内存中 3.变量分类:局部变量(方法体中声明):成员变量(方法体外声明) 实例变量(前边修饰符没有stat ...

  9. (七十五)c#Winform自定义控件-控件水印组件

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...

  10. 【面试题】SpringMVC部分面试题

    SpringMVC面试题 什么是SpringMVC ? 简单介绍下你对SpringMVC的理解 ? SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过Mo ...