📄 oracledataprovider.cs
字号:
/************************************************************************************
* 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 + -