⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oracledataprovider.cs

📁 其主要的功能就是,进行后台管理模块整合. 1)其可以支持多个应用,多个模块的权限管理. 2)支持Access和MsSql200/2005. 3)采用角色来进行权限的授权,每个用户可以属于多个角色
💻 CS
📖 第 1 页 / 共 5 页
字号:
/************************************************************************************
 *      Copyright (C) 2008 supesoft.com,All Rights Reserved					 
 *      File:																 
 *				OracleDataProvider.cs                     	                 
 *      Description:															 
 *				 Oracle数据库访问类    	   							         
 *      Author:																 
 *				Lzppcc														 
 *				Lzppcc@hotmail.com											 
 *				http://www.supesoft.com										 
 *      Finish DateTime:														 
 *				2008-2-7 16:24:10													 
 *      History:																 
 ***********************************************************************************/
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Data;
using System.Data.OracleClient;

using FrameWork.Components;


namespace FrameWork.Data
{
    /// <summary>
    /// Oracle数据库访问类
    /// </summary>
    public class OracleDataProvider : DataProvider
    {
        #region "OracleDataProvider"
        private string ConnString = string.Empty;

        /// <summary>
        /// 构造函数
        /// </summary>
        public OracleDataProvider()
        {
            ConnString = Common.GetConnString;
        }

        /// <summary>
        /// 创建数据库连接
        /// </summary>
        /// <returns></returns>
        private OracleConnection GetSqlConnection()
        {
            try
            {
                return new OracleConnection(ConnString);
            }
            catch
            {
                throw new Exception("没有提供数据庫连接字符串!");
            }
        }
        #endregion

        #region "sys_Group - OracleDataProvider"
        /// <summary>
        /// 新增/删除/修改 sys_Group
        /// </summary>
        /// <param name="fam">sys_GroupTable实体类</param>
        /// <returns>返回0操正常</returns>
        public override int sys_GroupInsertUpdate(sys_GroupTable fam)
        {
            int rInt = 0;

            using (OracleConnection Conn = GetSqlConnection())
            {
                string CommTxt;
                OracleCommand cmd = new OracleCommand();
                cmd.Connection = Conn;
                if (fam.DB_Option_Action_ == "Insert")
                {
                    CommTxt = "Insert into 	sys_Group(GroupID,G_CName,G_ParentID,G_ShowOrder,G_Level,G_ChildCount,G_Delete)VALUES(SEQ_sys_Group_ID.NEXTVAL,:G_CName,:G_ParentID,:G_ShowOrder,:G_Level,:G_ChildCount,:G_Delete)";
                    cmd.CommandText = CommTxt;

                    cmd.Parameters.Add("G_CName", OracleType.NVarChar).Value = fam.G_CName + ""; //分类中文说明	
                    cmd.Parameters.Add("G_ParentID", OracleType.Int32).Value = fam.G_ParentID; //上级分类ID0:为最高级	
                    cmd.Parameters.Add("G_ShowOrder", OracleType.Int32).Value = fam.G_ShowOrder; //显示顺序	
                    cmd.Parameters.Add("G_Level", OracleType.Int32).Value = fam.G_Level; //当前分类所在层数	
                    cmd.Parameters.Add("G_ChildCount", OracleType.Int32).Value = fam.G_ChildCount; //当前分类子分类数
                    cmd.Parameters.Add("G_Delete", OracleType.SByte).Value = fam.G_Delete; //是否删除1:是0:否
                }
                else if (fam.DB_Option_Action_ == "Update")
                {

                    CommTxt = "UPDATE sys_Group SET	G_CName = :G_CName,G_ParentID = :G_ParentID,G_ShowOrder = :G_ShowOrder,G_Level = :G_Level,G_ChildCount = :G_ChildCount,G_Delete = :G_Delete WHERE (GroupID = :GroupID)";
                    cmd.CommandText = CommTxt;

                    cmd.Parameters.Add("G_CName", OracleType.NVarChar).Value = fam.G_CName + ""; //分类中文说明	
                    cmd.Parameters.Add("G_ParentID", OracleType.Int32).Value = fam.G_ParentID; //上级分类ID0:为最高级	
                    cmd.Parameters.Add("G_ShowOrder", OracleType.Int32).Value = fam.G_ShowOrder; //显示顺序	
                    cmd.Parameters.Add("G_Level", OracleType.Int32).Value = fam.G_Level; //当前分类所在层数	
                    cmd.Parameters.Add("G_ChildCount", OracleType.Int32).Value = fam.G_ChildCount; //当前分类子分类数
                    cmd.Parameters.Add("G_Delete", OracleType.SByte).Value = fam.G_Delete; //是否删除1:是0:否
                    cmd.Parameters.Add("GroupID", OracleType.Int32).Value = fam.GroupID;
                }
                else if (fam.DB_Option_Action_ == "Delete")
                {
                    CommTxt = "Delete from  sys_Group  WHERE (GroupID = :GroupID)";
                    cmd.CommandText = CommTxt;
                    cmd.Parameters.Add("GroupID", OracleType.Int32).Value = fam.GroupID;
                }
                else
                    throw new ApplicationException("无法识别的操作命令!");
                Conn.Open();
                OracleTransaction Tran = Conn.BeginTransaction();
                cmd.Transaction = Tran;
                try
                {
                    rInt = cmd.ExecuteNonQuery();
                    cmd.Parameters.Clear();
                    if (fam.DB_Option_Action_ == "Insert")
                    {
                        cmd.CommandText = "select SEQ_sys_Group_ID.CURRVAL from  dual";
                        rInt = Convert.ToInt32(cmd.ExecuteScalar());
                    }
                    Tran.Commit();
                }
                catch (Exception ex)
                {
                    Tran.Rollback();
                    throw new ApplicationException(ex.ToString());
                }
                finally
                {
                    Tran.Dispose();
                    cmd.Dispose();
                    Conn.Dispose();
                    Conn.Close();
                }
            }
            return rInt;
        }

        /// <summary>
        /// 返回sys_GroupTable实体类的ArrayList对象
        /// </summary>
        /// <param name="qp">查询类</param>
        /// <param name="RecordCount">返回记录总数</param>
        /// <returns>sys_GroupTable实体类的ArrayList对象</returns>
        public override ArrayList sys_GroupList(QueryParam qp, out int RecordCount)
        {
            PopulateDelegate mypd = new PopulateDelegate(base.Populatesys_Group);
            return this.GetObjectList(mypd, qp, out RecordCount);
        }

        #endregion

        #region "sys_Module - OracleDataProvider"
        /// <summary>
        /// 新增/删除/修改 sys_Module
        /// </summary>
        /// <param name="fam">sys_ModuleTable实体类</param>
        /// <returns>返回0操正常</returns>
        public override int sys_ModuleInsertUpdate(sys_ModuleTable fam)
        {
            int rInt = 0;

            using (OracleConnection Conn = GetSqlConnection())
            {
                string CommTxt;
                OracleCommand cmd = new OracleCommand();
                cmd.Connection = Conn;
                if (fam.DB_Option_Action_ == "Insert")
                {
                    CommTxt = "Insert into 	sys_Module(ModuleID,M_ApplicationID,M_ParentID,M_PageCode,M_CName,M_Directory,M_OrderLevel,M_IsSystem,M_Close)VALUES(SEQ_sys_Module_ID.NEXTVAL,:M_ApplicationID,:M_ParentID,:M_PageCode,:M_CName,:M_Directory,:M_OrderLevel,:M_IsSystem,:M_Close)";
                    cmd.CommandText = CommTxt;

                    cmd.Parameters.Add("M_ApplicationID", OracleType.Int32).Value = fam.M_ApplicationID; //所属应用程序ID	
                    cmd.Parameters.Add("M_ParentID", OracleType.Int32).Value = fam.M_ParentID; //所属父级模块ID与ModuleID关联,0为顶级	
                    cmd.Parameters.Add("M_PageCode", OracleType.VarChar).Value = fam.M_PageCode + ""; //模块编码Parent为0,则为S00(xx),否则为S00M00(xx)
                    cmd.Parameters.Add("M_CName", OracleType.NVarChar).Value = fam.M_CName + ""; //模块/栏目名称当ParentID为0为模块名称
                    cmd.Parameters.Add("M_Directory", OracleType.NVarChar).Value = fam.M_Directory + ""; //模块/栏目目录名	
                    cmd.Parameters.Add("M_OrderLevel", OracleType.VarChar).Value = fam.M_OrderLevel + ""; //当前所在排序级别支持双层99级菜单
                    cmd.Parameters.Add("M_IsSystem", OracleType.SByte).Value = fam.M_IsSystem; //是否为系统模块1:是0:否如为系统则无法修改
                    cmd.Parameters.Add("M_Close", OracleType.SByte).Value = fam.M_Close; //是否关闭1:是0:否
                }
                else if (fam.DB_Option_Action_ == "Update")
                {

                    CommTxt = "UPDATE sys_Module SET	M_ApplicationID = :M_ApplicationID,M_ParentID = :M_ParentID,M_PageCode = :M_PageCode,M_CName = :M_CName,M_Directory = :M_Directory,M_OrderLevel = :M_OrderLevel,M_IsSystem = :M_IsSystem,M_Close = :M_Close WHERE (ModuleID = :ModuleID)";
                    cmd.CommandText = CommTxt;

                    cmd.Parameters.Add("M_ApplicationID", OracleType.Int32).Value = fam.M_ApplicationID; //所属应用程序ID	
                    cmd.Parameters.Add("M_ParentID", OracleType.Int32).Value = fam.M_ParentID; //所属父级模块ID与ModuleID关联,0为顶级	
                    cmd.Parameters.Add("M_PageCode", OracleType.VarChar).Value = fam.M_PageCode + ""; //模块编码Parent为0,则为S00(xx),否则为S00M00(xx)
                    cmd.Parameters.Add("M_CName", OracleType.NVarChar).Value = fam.M_CName + ""; //模块/栏目名称当ParentID为0为模块名称
                    cmd.Parameters.Add("M_Directory", OracleType.NVarChar).Value = fam.M_Directory + ""; //模块/栏目目录名	
                    cmd.Parameters.Add("M_OrderLevel", OracleType.VarChar).Value = fam.M_OrderLevel + ""; //当前所在排序级别支持双层99级菜单
                    cmd.Parameters.Add("M_IsSystem", OracleType.SByte).Value = fam.M_IsSystem; //是否为系统模块1:是0:否如为系统则无法修改
                    cmd.Parameters.Add("M_Close", OracleType.SByte).Value = fam.M_Close; //是否关闭1:是0:否
                    cmd.Parameters.Add("ModuleID", OracleType.Int32).Value = fam.ModuleID;
                }
                else if (fam.DB_Option_Action_ == "Delete")
                {
                    CommTxt = "Delete from  sys_Module  WHERE (ModuleID = :ModuleID)";
                    cmd.CommandText = CommTxt;
                    cmd.Parameters.Add("ModuleID", OracleType.Int32).Value = fam.ModuleID;
                }
                else
                    throw new ApplicationException("无法识别的操作命令!");
                Conn.Open();
                OracleTransaction Tran = Conn.BeginTransaction();
                cmd.Transaction = Tran;
                try
                {
                    rInt = cmd.ExecuteNonQuery();
                    cmd.Parameters.Clear();
                    if (fam.DB_Option_Action_ == "Insert")
                    {
                        cmd.CommandText = "select SEQ_sys_Module_ID.CURRVAL from  dual";
                        rInt = Convert.ToInt32(cmd.ExecuteScalar());
                    }
                    Tran.Commit();
                }
                catch (Exception ex)
                {
                    Tran.Rollback();
                    throw new ApplicationException(ex.ToString());
                }
                finally
                {
                    Tran.Dispose();
                    cmd.Dispose();
                    Conn.Dispose();
                    Conn.Close();
                }
            }
            return rInt;
        }

        /// <summary>
        /// 返回sys_ModuleTable实体类的ArrayList对象
        /// </summary>
        /// <param name="qp">查询类</param>
        /// <param name="RecordCount">返回记录总数</param>
        /// <returns>sys_ModuleTable实体类的ArrayList对象</returns>
        public override ArrayList sys_ModuleList(QueryParam qp, out int RecordCount)
        {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -