C# 数据库的基本操作(oracle)
2012-09-07 16:06
531 查看
配置文件如下:
基本操作类如下:
调用存储过程:
要手动关闭连接。
<appSettings> <add key="ServiceName" value="lev2" /> <add key="UserID" value="DBNAME" /> <add key="UserPsw" value="DBPASSWORD" /> </appSettings>
基本操作类如下:
using System; using System.Data; using System.Data.OracleClient; using System.Configuration; using System.Collections; using System.Text; namespace Common { /// <summary> /// CommonClass 的摘要说明 /// </summary> public class OracleServerDAL { OracleConnection connect = null; OracleCommand command = null; OracleDataReader reader = null; OracleDataAdapter adapter = null; DataSet ds = null; public OracleServerDAL() { // // TODO: 在此处添加构造函数逻辑 // } public string GetConnStr() { string[] configStrings = ConfigHelper.ReadDBConfig(); string serviceName = ""; string userID = ""; string userPSW = ""; if (configStrings[0] == null || configStrings[1] == null || configStrings[2] == null) { return ""; } serviceName = ConfigHelper.GetAppConfig("ServiceName"); userID = configStrings[1]; userPSW = configStrings[2]; string constr = string.Format("DATA SOURCE={0};user={1};password={2};", serviceName, userID, userPSW); return constr; } /// <summary> /// 建立与数据库的连接 /// </summary> public void connectionData() { try { if (connect == null) { string constr = GetConnStr(); if (string.IsNullOrEmpty(constr)) { connect = new OracleConnection(DefineConst.constr); } else { connect = new OracleConnection(constr); } } if (connect.State == ConnectionState.Closed) { connect.Open(); } } catch (Exception e) { Console.Write(e.Message); } } /// <summary> /// 获取数据库连接 /// </summary> /// <returns></returns> public static OracleConnection GetConnection() { return new OracleConnection(DefineConst.constr); } /// <summary> /// 获取数据库连接字符串 /// </summary> /// <returns></returns> public static string GetConnectionStr() { string[] configStrings = ConfigHelper.ReadDBConfig(); string serviceName = ""; string userID = ""; string userPSW = ""; if (configStrings[0] == null || configStrings[1] == null || configStrings[2] == null) { return ""; } serviceName = ConfigHelper.GetAppConfig("ServiceName"); userID = configStrings[1]; userPSW = configStrings[2]; string constr = string.Format("DATA SOURCE={0};user={1};password={2};", serviceName, userID, userPSW); return constr; } /// <summary> /// 关闭数据库连接 /// </summary> public void closeConnect() { try { if (connect != null) { if (connect.State == ConnectionState.Open) { connect.Close(); } connect.Dispose(); connect = null; } } catch (Exception e) { Console.Write(e.Message); } } /// <summary> /// 返回查询记录集DataSet /// </summary> /// <returns>System.Data.OracleClient.OracleDataReader</returns> public DataSet returnRecordSet(string sql) { connectionData(); ds = new DataSet(); adapter = new OracleDataAdapter(sql, connect); adapter.Fill(ds); closeConnect(); return ds; } /// <summary> /// 返回查询记录数 /// </summary> /// <returns>int</returns> public int returnRecordCount(string sql) { int rowCount = 0; connectionData(); command = new OracleCommand(sql, connect); try { rowCount = command.ExecuteNonQuery(); } catch { //throw; } closeConnect(); return rowCount; } /// <summary> /// 返回第一行第一列的值 /// </summary> /// <returns>int</returns> public object returnRCValue(string sql) { object obj = null; connectionData(); command = new OracleCommand(sql, connect); try { obj = command.ExecuteScalar(); } catch { //throw; } closeConnect(); return obj; } /// <summary> /// sql形式 select COUNT(*) from 表 /// </summary> /// <param name="sql"></param> /// <returns></returns> public int callRecordCount(string sql) { object obj = null; connectionData(); command = new OracleCommand(sql, connect); try { obj = command.ExecuteScalar(); } catch { //throw; } closeConnect(); return Convert.ToInt16(obj); } /// <summary> /// 返回结果状态1为成功0为失败 /// </summary> ///<param name="myArr">存储SQL语句的集合</param> /// <returns>int</returns> public int ExucteTransaction(ArrayList myArr) { int returnValue = 0; connectionData(); command = new OracleCommand(); command.Connection = connect; OracleTransaction myTran = connect.BeginTransaction(); command.Transaction = myTran; try { for (int i = 0; i < myArr.Count; i++) { command.CommandText = myArr[i].ToString(); command.ExecuteNonQuery(); } myTran.Commit(); returnValue = 1; } catch { myTran.Rollback(); returnValue = 0; } finally { connect.Close(); } return returnValue; } /// <summary> /// 返回DataReader,非安全代码,必须手动关闭连接! /// </summary> /// <param name="sql">SQL查询语句</param> /// <returns>SqlDataReader</returns> public OracleDataReader retrunDataReader(string sql) { command = new OracleCommand(sql, connect); try { reader = command.ExecuteReader(); } catch { //throw; } return reader; } // 返回Command public OracleCommand returnCommand(string sql, OracleParameter[] parms) { command = new OracleCommand(sql, connect); foreach (OracleParameter parm in parms) { command.Parameters.Add(parm); } return command; } /// <summary> /// 调用存储过程,非安全代码,必须手动关闭连接! /// </summary> /// <param name="proceName">存储过程名</param> /// <param name="parms">存储过程参数</param> /// <param name="sdr">返回SqlDataReader对象</param> public void RunProce(string proceName, OracleParameter[] parms, out OracleDataReader sdr) { command = CreateCommand(proceName, parms); sdr = command.ExecuteReader(CommandBehavior.CloseConnection); } /// <summary> /// 调用存储过程,非安全代码,必须手动关闭连接! /// </summary> /// <param name="proceName"></param> /// <param name="parms"></param> /// <param name="result"></param> public void RunProce(string proceName,OracleParameter[] parms, out int result) { command = CreateCommand(proceName, parms); result = command.ExecuteNonQuery(); } /// <summary> /// 调用存储过程,非安全代码,必须手动关闭连接! /// </summary> /// <param name="proceName"></param> /// <param name="parms"></param> /// <param name="ds"></param> public void RunProce(string proceName, OracleParameter[] parms, out DataSet ds) { command = CreateCommand(proceName, parms); adapter = new OracleDataAdapter(command); ds = new DataSet(); try { adapter.Fill(ds, "result"); } catch (Exception e) { } } /// <summary> /// 调用存储过程,返回多个游标 /// </summary> /// <param name="proceName"></param> /// <param name="parms"></param> /// <param name="ds"></param> public void RunMultiCurProce(string proceName, OracleParameter[] parms, out DataSet ds) { command = CreateCommand(proceName, parms); adapter = new OracleDataAdapter(command); ds = new DataSet(); try { adapter.Fill(ds); } catch (Exception e) { } } /// <summary> /// 调用存储过程,非安全代码,必须手动关闭连接! /// </summary> /// <param name="proceName"></param> /// <param name="parms"></param> /// <param name="result"></param> public void RunProce(string proceName, OracleParameter[] parms) { command = CreateCommand(proceName, parms); command.CommandType = CommandType.StoredProcedure; try { command.ExecuteNonQuery(); } catch (Exception e) { Console.Write(e.Message); } } /// <summary> /// 调用存储过程,非安全代码,必须手动关闭连接! /// </summary> /// <param name="proceName"></param> /// <param name="parms"></param> /// <param name="ds"></param> public void RunProce(string proceName, string tableName, OracleParameter[] parms, out DataSet ds) { command = CreateCommand(proceName, parms); adapter = new OracleDataAdapter(command); ds = new DataSet(); try { adapter.Fill(ds, tableName); } catch(Exception e) { }; } /// <summary> /// 创建SqlComand对象 执行存储过程 /// </summary> /// <param name="proceName">存储过程名</param> /// <param name="parms">存储过程参数</param> /// <returns>返回SqlCommand对象</returns> private OracleCommand CreateCommand(string proceName, OracleParameter[] parms) { command = new OracleCommand(proceName, connect); command.CommandType = CommandType.StoredProcedure; if (parms != null) { foreach (OracleParameter parm in parms) { command.Parameters.Add(parm); } } return command; } /// <summary> /// 初始化页面Table数据 /// </summary> /// <param name="field"></param> /// <param name="table"></param> /// <param name="condition"></param> public void getInitTable(string field, string table, string condition) { StringBuilder SQL = new StringBuilder(); SQL.Append("select " + field + " from " + table + " where " + condition); retrunDataReader(SQL.ToString()); } /// <summary> /// 仅执行数据库操作 /// </summary> /// <param name="sql"></param> public void SqlOpt(string sql) { connectionData(); command = new OracleCommand(sql); command.Connection = connect; try { command.ExecuteNonQuery(); } catch (OracleException se) { throw se; } finally { } connect.Close(); } } }
调用存储过程:
public string GS_Info(string parm1, string parm2, string parm3) { OracleParameter[] parm = null; parm = new OracleParameter[4] { new OracleParameter("parm1", OracleType.VarChar, 10), new OracleParameter("parm2", OracleType.VarChar, 10), new OracleParameter("parm3", OracleType.VarChar, 10), new OracleParameter("Re_CURSOR", OracleType.Cursor, 100000) }; parm[0].Direction = System.Data.ParameterDirection.Input; parm[1].Direction = ParameterDirection.Input; parm[2].Direction = ParameterDirection.Input; parm[3].Direction = ParameterDirection.Output; parm[0].Value = parm1; parm[1].Value = parm2; parm[2].Value = parm3; DataSet ds = null; OracleServerDAL OSD = new OracleServerDAL(); string result = ""; try { OSD.connectionData(); OSD.RunProce("ProceName", "GS_Table", parm, out ds); result = CommonFormOpt.SerializeDataTableXml(ds.Tables[0]); } catch (Exception) { } finally { OSD.closeConnect(); } return result; }
要手动关闭连接。
相关文章推荐
- 【初识Oracle】③数据库对基本数据类型进行操作的函数
- Oracle 10g创建数据库 用户等基本操作
- 【数据库】oracle基本操作
- (SQL SERVER) (ORACLE) (ACCESS)(POSTGRE SQL)四种数据库操作C#代码
- 数据库行列转换以及c#数据库基本操作
- C#进阶ADO.NET基础一 基本概念、数据库连接操作基础
- C#基本数据库操作
- oracle mysql sqlserver 查看当前所有数据库及数据库基本操作命令
- oracle 数据库的基本操作
- 数据库的基本操作及数据库与c#的连接
- 【Oracle基本操作1】 数据库的新建删除
- 一个通用数据库操作组件DBUtil(c#)、支持SqlServer、Oracle、Mysql、Access、SQLITE
- 【Java】【Oracle】Java操作Oracle 12c数据库基本步骤介绍——从零开始#1
- oracle mysql sqlserver 查看当前所有数据库及数据库基本操作命令
- 用C# 来操作ORACLE 数据库
- C#编写的OLEDB数据库操作基本类
- c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)(一)
- c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)2
- oracle mysql sqlserver 查看当前所有数据库及数据库基本操作命令
- Oracle 数据库基本操作