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 }
? ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |