ASP.NET C# 连接 Oracle数据库增删改查,事务

一、知识介绍

  ①ASP.NET 使用的是MVC模式,开发工具Visual studio ,语言C#

  ②Oracle是比较重型的数据库,这里主要介绍连接数据库,对数据进行具体的使用

  ③Visual Studio连接数据库都是需要dll文件,方法相似。

二、步骤

  ①新建一个ASP项目

  ②右击项目或引用,管理Nuget程序包。搜索Oracle,下载Oracle的dll依赖

    

  ③由于数据库的增删改查常用,放在一个方法中。新建了类库,把方法放入类库中,在项目中需添加引用。  

  1 using Oracle.DataAccess.Client;
  2 using System;
  3 using System.Data;
  4 using System.Collections.Generic;
  5 using System.Configuration;
  6
  7
  8 namespace Common
  9 {
 10     public class DBHelper
 11     {
 12         //      static string connString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=118.31.20.98)(PORT=33602))(CONNECT_DATA=(SERVICE_NAME=STUTEST)));Persist Security Info=True;User ID=WMSTEST;Password=WMSTEST;";
 13
 14
 15         static string connString = ConfigurationManager.ConnectionStrings["Conn_DB"].ToString();
 16
 17         /// <summary>
 18         /// 查询表数据(单表)
 19         /// </summary>
 20         /// <param name="sql">sql语句</param>
 21         /// <returns></returns>
 22         public static DataSet SelectData(string sql)
 23         {
 24             DataSet ds = new DataSet();
 25             try
 26             {
 27                 using (OracleConnection conn = new OracleConnection(connString))
 28                 {
 29                     //conn.Open();
 30                     OracleCommand cmd = new OracleCommand(sql, conn);
 31                     OracleDataAdapter adapter = new OracleDataAdapter(cmd);
 32                     adapter.Fill(ds);
 33                     return ds;
 34                 }
 35             }
 36             catch (Exception e)
 37             {
 38                 Console.Write(e);
 39             }
 40             return null;
 41         }
 42
 43         //增改删
 44         /// <summary>
 45         /// 执行sql 语句
 46         /// </summary>
 47         /// <param name="sql"></param>
 48         /// <returns>返回影响的行数</returns>
 49         public static Boolean AddUpDelData(string sql)
 50         {
 51             try
 52             {
 53                 using (OracleConnection conn = new OracleConnection(connString))
 54                 {
 55                     conn.Open();
 56                     OracleCommand cmd = new OracleCommand(sql, conn);
 57                     int row = cmd.ExecuteNonQuery();
 58                     conn.Close();
 59                     if (row > 0)
 60                     {
 61                         return true;
 62                     }
 63                 }
 64             }
 65             catch (Exception e)
 66             {
 67                 Console.Write(e);
 68             }
 69             return false;
 70         }
 71
 72         public static Boolean ExeTransaction(List<string> sqlText)
 73
 74         {
 75
 76             using (OracleConnection conn = new OracleConnection(connString))
 77             {
 78                 conn.Open();
 79                 OracleTransaction tran = conn.BeginTransaction();
 80                 try
 81                 {
 82
 83                     OracleCommand cmd = new OracleCommand();
 84
 85                     cmd.Transaction = tran;
 86
 87                     cmd.Connection = conn;
 88
 89                     foreach(string item in sqlText)
 90                     {
 91                         cmd.CommandText = item;
 92
 93                          cmd.ExecuteNonQuery();
 94                     }
 95                     tran.Commit();
 96
 97                     return true;
 98
 99                 }
100
101                 catch (Exception et)
102
103                 {
104                     tran.Rollback();
105                     return false;
106                 }
107
108                 finally
109                 {
110                     conn.Close();
111                 }
112
113             }
114
115         }
116
117     }
118 }

    <1>static string connString = ConfigurationManager.ConnectionStrings["Conn_DB"].ToString();

      获取Web.config中配置的连接字符串,同上注释的字符串可直接引用      

1     <connectionStrings>
2     <add name="Conn_DB" connectionString="Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =
3          (PROTOCOL = TCP)(HOST = 192.168.1.13)(PORT=8686)))(CONNECT_DATA =(SERVER = DEDICATED)
4          (SERVICE_NAME = STUTEST)));User Id=WMSTEST;Password=WMSTEST;" providerName="Oracle.DataAccess.Client" />
5   </connectionStrings>

    <2>插入,删除,修改都可用一个方法,执行语句相同,返回true则表示有数据收到影响

    <3>事务,事务是多条SQL语句一起执行,如果一条错误,那么将会回滚。这个在表之间主外键关系是有必要同时生效。只要把SQL语句放在List集合中,传到方法中即可

    <4>查询数据的到的DateSet,DateSet可以解析成一个Model对象类,也可以直接转换成Json字符串,得到的结果

{"total":2,"rows":[{"PRODUCTID":"003","CREATETIME":"2018/7/18 15:49:29"},{"PRODUCTID":"003","CREATETIME":"2018/7/18 15:49:29"}]}

    <5>数据转换的方法(此方法返回的数据可应用于bootstrap-table中的表格初始化数据)

 1 public string GetProductData()
 2         {
 3             Hashtable ht = new Hashtable();
 4             try
 5             {
 6                 string sql_getdata = "select * from WQY_PRODUCT";
 7                 string sql_gettotal = "select COUNT(*) from WQY_PRODUCT";
 8
 9                 DataTable dt_data = DBHelper.SelectData(sql_getdata).Tables[0];
10                 DataTable dt_total = DBHelper.SelectData(sql_gettotal).Tables[0];
11
12                 int total = int.Parse(dt_total.Rows[0][0].ToString());
13                 ht.Add("total", total);
14                 ht.Add("rows", dt_data);
15                 return JsonConvert.SerializeObject(ht);
16             }
17             catch (Exception ex)
18             {
19                 ht.Add("total", 0);
20                 ht.Add("rows", null);
21                 Console.Write(ex);
22                 string a = JsonConvert.SerializeObject(ht);
23                 return JsonConvert.SerializeObject(ht);
24             }
25         }

  

  <6>通过对DateTable或者DateSet进行循环即可取得每一个key对应的value值。

1                 for(int i = 0; i < dt_data.Rows.Count; i++)
2                 {
3                     string a = dt_data.Rows[0]["PRODUCTID"].ToString();
4                 }

原文地址:https://www.cnblogs.com/xqz0618/p/Oracle.html

时间: 2024-08-03 23:13:23

ASP.NET C# 连接 Oracle数据库增删改查,事务的相关文章

Java连接MySQL数据库增删改查通用方法

Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类下面写好多方法,要是多个数据库,就要写多个类多个方法,导致代码编写太过于繁琐,所以为了改变这样的繁琐,我将连接数据库的方法进行了一系列的封装,使用户传入一个对象值Object就可以得到想要的. 我在之前写过一篇普通的Java连接MySQL数据库,大家可以看看,以便对比参考之后就知道差距了  数据库--MySQL-->Java篇 接下来我给大家讲讲如何将

jsp-2 简单的servlet连接mysql数据库 增删改查

连接mysql数据库的操作 有增删改查 用的包有 commons-lang3-3.5 mysql-connector-java-5.1.40-bin 但是实际上也就是 数据查询和数据处理两种 所以对数据库的操作DAO只有两种方法 package com.javaweb.dao; import java.lang.reflect.Field;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.Re

java 连接oracle 进行增删改查

1.在DAO层新增类OraclePersionDao package com.test.dao; import java.sql.*; /** * Created by wdw on 2017/9/16. */ public class OraclePersionDao { // 数据库驱动类 private String dbDriver = "oracle.jdbc.driver.OracleDriver"; // 连接数据库url private String dbURL = &

java连接mysql数据库增删改查操作记录

1. 连接数据库,得到数据库连接变量 注意连接数据库的时候 (1)打开DB Browser 新建一个Database Driver,注意添加Driver JARs的时候添加的包,我的是mysql-connector-java-5.0.3-bin.jar (2)要将数据库jar包拷贝到工程下的WEB-INF\lib下 import java.sql.Connection;//java包 public class DBConnection { private String dbDriver="com

asp.net中利用JSON进行增删改查中运用到的方法

//asp.net中 利用JSON进行操作, //增加: //当点击"增加链接的时候",弹出增加信息窗口,然后,在窗体中输入完整信息,点击提交按钮. //这里我们需要考虑这些:我会进行异步提交,使用jquery中的方法,$.post("网页名",JSON,callback); //JSON的写法:{"name":name,"id":id},那我们对其进行假设,比方说,表单中的textbox很多,需要我们填写的信息 //也很多,

MVC——数据库增删改查

MVC: V(View) :视图→就是页面的模板 C(Control): 控制器→客户主要面对的就是控制器, M(Model):模板→在模板里面主要就是写关于数据库的各种增删改查的方法 它们之间的关系就是→ 在控制器里调用模板里的方法,然后把得到的数据传到视图里,视图就会把得到的数据添加到自己的页面上,在通过视图里反馈的值传到控制器上.以实现对数据库的操作和控制器页面的显示.(大概是这样) 下面是对数据库增删改查的代码 一.各种数据库操作的方法(增删改查) namespace 数据库增删改查.M

Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作

此篇文章主要讲述DAO.Java Bean和Servlet实现操作数据库,把链接数据库.数据库操作.前端界面显示分模块化实现.其中包括数据的CRUD增删改查操作,并通过一个常用的JSP网站前端模板界面进行描述.参考前文: Java+MyEclipse+Tomcat (一)配置过程及jsp网站开发入门 Java+MyEclipse+Tomcat (二)配置Servlet及简单实现表单提交 Java+MyEclipse+Tomcat (三)配置MySQL及查询数据显示在JSP网页中 Java+MyE

go——beego的数据库增删改查

一直都不理解使用go语言的时候,为什么还要自己去装beego,以为使用go便可以解决所有的问题,结果在朋友的点拨下,才意识到: go与beego的关系就好比是nodejs与thinkjs的关系,因此也就不怎么存在疑问为什么还要继续安装beego来完成项目运行了,beego其实就是一个快速开发Go应用的http框架,go 语言方面技术大牛,可以用来快速开发API.Web.后端服务等各种应用,是一个RESTFul的框架.再次附上beego的官网(http://beego.me/docs/intro/

Java连接MongoDB进行增删改查

1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean; import java.io.Serializable; import java.util.Date; /** * @since 对应于mongodb中的数据库test中的表com * @author think * */ public class Company implements Seri