ASP.NET C# 连接 Oracle数据库增删改查,事务
2018-08-03 07:38:03来源:博客园 阅读 ()
一、知识介绍
①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 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- asp.net源程序编译为dll文件并调用的实现过程 2020-03-29
- Asp.net MVC SignalR来做实时Web聊天实例代码 2020-03-29
- ASP.NET MVC中jQuery与angularjs混合应用传参并绑定数据 2020-03-29
- Asp.Net中WebForm的生命周期 2020-03-29
- ASP.NET使用Ajax返回Json对象的方法 2020-03-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash