加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 08:47:37 所属栏目:asp.Net 来源:网络整理
导读:一、知识介绍 ①ASP.NET 使用的是MVC模式,开发工具Visual studio ,语言C# ②Oracle是比较重型的数据库,这里主要介绍连接数据库,对数据进行具体的使用 ③Visual Studio连接数据库都是需要dll文件,方法相似。 ? 二、步骤 ①新建一个ASP项目 ②右击项目或

一、知识介绍

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

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

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

?

二、步骤

  ①新建一个ASP项目

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

    

?

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

  1 using Oracle.DataAccess.Client;
  2  System;
  3  System.Data;
  4  System.Collections.Generic;
  5  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         static DataSet SelectData(string sql)
 23         {
 24             DataSet ds = new DataSet();
 25             try
 26             {
 27                 using (OracleConnection conn =  OracleConnection(connString))
 28                 {
 29                     conn.Open();
 30                     OracleCommand cmd =  OracleCommand(sql,conn);
 31                     OracleDataAdapter adapter =  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          45          执行sql 语句
 46          47         <param name="sql"></param>
 48         <returns>返回影响的行数</returns>
 49         static Boolean AddUpDelData( 50  51              52  53                  54  55                     conn.Open();
 56                     OracleCommand cmd =  57                     int row = cmd.ExecuteNonQuery();
 58                     conn.Close();
 59                     if (row > 0)
 60                     {
 61                         true 62                     }
 63  64  65              66  67  68  69             false 70  71 
 72         static Boolean ExeTransaction(List<string> sqlText)
 73 
 74  75 
 76              77  78                 conn.Open();
 79                 OracleTransaction tran = conn.BeginTransaction();
 80                  81  82                                      
 83                     OracleCommand cmd =  OracleCommand();
 84 
 85                     cmd.Transaction = tran;
 86 
 87                     cmd.Connection = conn;
 88 
 89                     foreach(string item in 90  91                         cmd.CommandText = item;
 92 
 93                          cmd.ExecuteNonQuery();
 94  95                     tran.Commit();
 96 
 97                      98 
 99 100 
101                  (Exception et)
102 
103 104                     tran.Rollback();
105                     106 107 
108                 finally
109 110 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   </>

?

?

    <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 string GetProductData( 2  3             Hashtable ht =  Hashtable();
 4              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[];
10                 DataTable dt_total = DBHelper.SelectData(sql_gettotal).Tables[11 
12                 int total = int.Parse(dt_total.Rows[0][].ToString());
13                 ht.Add(total,total);
14                 ht.Add(rows15                  JsonConvert.SerializeObject(ht);
16 17              (Exception ex)
18 19                 ht.Add(",);
20                 ht.Add(21                 Console.Write(ex);
22                 string a =23                 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[PRODUCTID4                 }

?

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读