当前位置:数据库 > Oracle >>

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
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,