C#连Oracle数据库
using System;
using System.Configuration;
using System.Data;
using System.Data.OracleClient;
using System.Collections;
using System.Web;
namespace Game.DBUtility
{
/// <summary>
/// A helper class used to execute queries against an Oracle database
/// 一个用来帮助执行Oracle数据库操作的类
/// </summary>
public abstract class OracleHelper
{
// Read the connection strings from the configuration file
//从配置文件中读取数据库连接字串
public static readonly string ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
public static readonly string ConnectionStringLocalTransaction = ConfigurationManager.AppSettings["OraConnString1"];
public static readonly string ConnectionStringInventoryDistributedTransaction = ConfigurationManager.AppSettings["OraConnString2"];
public static readonly string ConnectionStringOrderDistributedTransaction = ConfigurationManager.AppSettings["OraConnString3"];
public static readonly string ConnectionStringProfile = ConfigurationManager.AppSettings["OraProfileConnString"];
public static readonly string ConnectionStringMembership = ConfigurationManager.AppSettings["OraMembershipConnString"];
//Create a hashtable for the parameter cached
//为Parameter创建一个哈稀表的缓存
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
/// <summary>
/// Execute a database query which does not include a select
/// 执行一次数据库操作但是不包括查询
/// </summary>
/// 下面为所传递的参数
/// <param name="connString">Connection string to database </param>//数据库的连接字串
/// <param name="cmdType">Command type either stored procedure or SQL </param>//Command 类型为存储过程或者SQL语句
/// <param name="cmdText">Acutall SQL Command</param>
/// <param name="commandParameters">Parameters to bind to the command</param>Parameter 参数
/// <returns></returns>
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params OracleParameter[] commandParameters)
{
// Create a new Oracle command
//创建一个Oracle command对象
OracleCommand cmd = new OracleCommand();
//Create a connection
//创建一个connection对象
using (OracleConnection connection = new OracleConnection(connectionString))
{
//Prepare the command
//为command做准备,下面有此方法定义
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
//Execute the command
//执行 command
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}
/// <summary>
/// Execute an OracleCommand (that returns no resultset) against an existing database transaction
/// using the provided parameters.
/// 用parameters执行现有的数据库事务(没有返回值??)---估计不对
/// </summary>
/// <remarks>
/// e.g.:
/// int result = ExecuteNonQuery(trans, CommandType.StoredProcedure, "PublishOrders", new OracleParameter(":prodid", 24));
/// 例子
/// </remarks>
/// <param name="trans">an existing database transaction</param>//一个现有的数据库事务
/// <param name="commandType">the CommandType (stored procedure, text, etc.)</param>//command对象类型 (存储过程???,文本,其他)
/// <param name="commandText">the stored procedure name or PL/SQL command</param>//存储过程名或者是SQL语句
/// <param name="commandParameters">an array of OracleParamters used to execute the command</param>//用于执行的Paramter数组
/// <returns>an int representing the number of rows affected by the command</returns>//返回的是命令影响的行数
public static int ExecuteNonQuery(OracleTransaction trans, CommandType cmdType, string cmdText, params OracleParameter[] commandParameters)
{
OracleCommand cmd = new OracleCommand();
PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
补充:软件开发 , C# ,
- 更多Oracle疑问解答:
- 运行exp备份oracle数据库提示oracle-12154错误
- 有没有,生产Oracle Rman 备份脚本的工具啊!
- 初学orcle,希望有大大帮忙解说一下详细步骤,从登录oracle到创建表的过程
- oracle语句问题:一张user表,三个字段,id,name,time,插入记录比如:张三2007,李四2008,张三2011
- 如何写一个ORACLE触发器同步两个表中的数据?
- oracle 如何查看一个服务器上有多少个数据库.
- oracle 创建包的时候错误 求解
- oracle 重复列的问题
- oracle 中如何查处2星期前的数据
- 请教oracle数据库安装中的问题
- 请问谁能提供给我标准的oracle ERP的数据库表结构并详细说明各表主要的作用?
- 安装oracle遇到的问题 invalid entry CRC (expected 0x3e12e795 but got 0x9db0e9fd)
- 我的是ORACLE 10G,在RMAN中如何按指定的时间恢复数据文件啊?
- oracle为什么没有自动增长列
- oracle快捷键都有哪些啊?