📄 globleutility.cs
字号:
using System;
using System.Collections;
using System.Windows.Forms;
using Microsoft.Win32;
using System.Data;
using System.Data.OracleClient;
using System.ComponentModel;
using System.Runtime.InteropServices;
using System.Timers;
using System.Threading;
using DogOperaLib;
namespace GlobleUtility
{
/// <summary>
/// 声明一个结构,用来赋值给listview的Tag属性。
/// </summary>
public struct lvTagTemp
{
public string temp_id; //保存ListView的项对应记录的ID
}
/// <summary>
/// 声明一个结构,用来赋值给treeview的Tag属性。
/// </summary>
public struct trvTagTemp
{
public string temp_id; //节点记录的ID
public int temp_type; //节点的类型 //该值为0代表此节点是最高节点,该值为1代表此节点是部门类型,该值为2代表此节点是班级类型
public int temp_isexpand; //节点未/已展开过 ,未1,已2
}
/// <summary>
/// 声明一个结构,用来赋值给listview的Tag属性。
/// </summary>
public struct admin_lvTagTemp
{
public string temp_systemid; //节点子系统的ID
public string temp_wsid; //节点工作站的ID
public string temp_rightid; //节点权限的ID
}
/// <summary>
/// 声明一个结构,用来赋值给listview的Tag属性。
/// </summary>
public struct HR_lvTagTemp
{
public string temp_fromid; //父ID
public string temp_toid; //子ID
public DateTime temp_fromdate; //起始时间
}
/*
//卡存信息
public struct CardInfo
{
public string UnitSign;//单位标志——存学校代码
public string UserType;//用户类型
public string UserID;//UserID
public string LogicID;//用户逻辑编号(学号、教工号)
public string ValidDate;//有效日期
public long Balance;//卡片余额
public long CardSerialNum;//卡序列号
public int CardNo;//卡号
public string CardType;//卡类别
public string UserName;//姓名
public string FreeTime;//剩余机时
}
*/
/*
public class CardOperation
{
/// <summary>
/// 检查有效期
/// </summary>
/// <param name="sValidDate">从卡中读出的有效期字符串</param>
/// <returns>未过期,返回true;已过期,返回false。</returns>
public static bool CheckValidDate(string sValidDate)
{
int year = Convert.ToInt32(sValidDate.Substring(0, 4));
int month = Convert.ToInt32(sValidDate.Substring(4, 2));
int date = Convert.ToInt32(sValidDate.Substring(6, 2));
DateTime dt = new DateTime(year, month, date);
int compareValue = 0;
compareValue = dt.CompareTo(System.DateTime.Today);
if (compareValue < 0)
{
//已过有效期,提示并退出
return false;
}
return true;
}
/// <summary>
/// 检查卡号是否在黑名单(CardM_Black_List)中
/// </summary>
/// <param name="cardNo">卡号</param>
/// <returns>卡号在黑名单中,返回1;不在返回0;异常情况返回-1;</returns>
public static int CheckBlackList(int cardNo)
{
OracleConnection myConn = Connection.DBConnection;
if (myConn == null)
{
return -1;
}
string mySql = "select * from CardM_Black_List where CardID = " + cardNo.ToString();
OracleCommand dbCommand = new OracleCommand(mySql, myConn);
try
{
OracleDataReader dbReader = dbCommand.ExecuteReader();
if (dbReader.Read()) //cardNo在黑名单中
{
dbReader.Close();
return 1;
}
dbReader.Close();
return 0;
}
catch(Exception)
{
return -1;
}
}
}
*/
/// <summary>
/// 类名:Connection
/// 功能:建立与数据库的连接
///
/// 使用方法:使用构造函数建立实例,然后调用Open函数。
/// </summary>
public class Connection
{
public Connection()
{}
private static System.Data.OracleClient.OracleConnection dbConnection;//用来连接数据库
private static String sLoginUser;//用来取得登录系统的管理员的用户名
private static int nWSID;//用来取得登录系统(即运行本程序)的工作站
private static int nRightID;//用来取得登录系统的管理员的权限
// 返回:整型值,0表示无错误,大于零表示一个错误码
public int Open()
{
Register Reg = new Register();
if(null == Reg)
{
return 1;
}
if(Reg.DBComputer.Equals("") || Reg.DBSource.Equals(""))
{
}
dbConnection = new System.Data.OracleClient.OracleConnection();
if(null == dbConnection)
return 1;
String sConn = "data source=" + Reg.DBSource + ";";//数据源
String sUserPWD = "password=charge1;user id=charge1;";//连接数据库的数据库用户和密码
String sTempConnStr =sConn+sUserPWD;//取得数据库连接字符串
if(sTempConnStr == "")
return 2;//创建数据库连接字符串失败
if(dbConnection.State != ConnectionState.Closed)
dbConnection.Close();
dbConnection.ConnectionString = sTempConnStr;
try
{
dbConnection.Open();
}
catch
{
return 3;//连接数据库失败
}
return 0;
}
public void Close()//关闭数据库连接
{
if(dbConnection != null)
{
if(dbConnection.State != ConnectionState.Closed)
dbConnection.Close();
}
}
public static System.Data.OracleClient.OracleConnection DBConnection//定义性质,改变私有变量的可访问性
{
get
{
if(dbConnection == null)
return null;
if (dbConnection.State != ConnectionState.Open)//数据库连接关闭状态
{
try
{
dbConnection.Open();//打开数据库连接
}
catch (OracleException)
{
MessageBox.Show("连接数据库失败!");
return null;
}
}
return dbConnection;
}
}
public static String LoginUser//定义登录用户性质
{
get
{
return sLoginUser;
}
set
{
sLoginUser = value;
}
}
public static int WSID//定义登录工作站性质
{
get
{
return nWSID;
}
set
{
nWSID = value;
}
}
public static int RightID//定义登录用户权限性质
{
get
{
return nRightID;
}
set
{
nRightID = value;
}
}
}
[ StructLayout( LayoutKind.Sequential )]
public class SystemTime
{
public ushort Year;
public ushort Month;
public ushort DayOfWeek;
public ushort Day;
public ushort Hour;
public ushort Minute;
public ushort Second;
public ushort Milliseconds;
}
public class Kernel32
{
[ DllImport( "Kernel32.dll" )] public static extern void GetLocalTime([In, Out] SystemTime st);
[ DllImport( "Kernel32.dll" )] public static extern void SetLocalTime([In] SystemTime st);
[ DllImport( "Kernel32.dll" )] public static extern bool Beep([In] uint dwFreq, [In] uint dwDuration);
}
/// <summary>
/// Register
/// 功能:读写注册表,从而设置或取得数据库服务器的机器名
/// 使用方法:访问或设置属性DBComputer
/// </summary>
public class Register
{
public Register()
{
RegistryKey rk = Registry.LocalMachine;//取得注册表的HKEY_LOCAL_MACHINE基项
rk=rk.CreateSubKey("Software\\University\\Charge1");//创建子项
if(null != rk)
{
dbComputer = (string)rk.GetValue("DBMachine", "");
dbSource = (string)rk.GetValue("DBSource", "");
}
}
// 取得或设置数据库所在的计算机名
public String DBComputer
{
get
{
return dbComputer;
}
set
{
RegistryKey rk = Registry.LocalMachine;
rk=rk.CreateSubKey("Software\\University\\Charge1");
if(null != rk)
{
dbComputer = value;
rk.SetValue("DBMachine", dbComputer);
}
}
}
//取得或设置数据库名
public String DBSource
{
get
{
return dbSource;
}
set
{
RegistryKey rk = Registry.LocalMachine;
rk=rk.CreateSubKey("Software\\University\\Charge1");
if(null != rk)
{
dbSource = value;
rk.SetValue("DBSource", dbSource);
}
}
}
private String dbComputer; //数据库所在的计算机名
private String dbSource; //数据库名
}
//全局的帮助函数
public class GlobleHelper
{
//过程名称:ExecStoredProc
//功能:执行一个不需要返回数据集的存储过程
//参数:ProcName 存储过程名字,使用包时要加上包的名字
// inParam 存储过程需要的输入参数
// outParam 存储过程需要的输出参数,注意,这是引用参数
//返回值:0表示成功,大于零表示错误号
public static int ExecStoredProc(string ProcName, OracleParameter[] inParam,
ref OracleParameter[] outParam)
{
if(Connection.DBConnection.State != ConnectionState.Open)
Connection.DBConnection.Open();//取得数据库连接
OracleCommand Cmd = new OracleCommand(ProcName, Connection.DBConnection);//建立数据库命令
Cmd.CommandType = CommandType.StoredProcedure;//命令类型为执行存储过程
//添加输入参数
if(inParam != null)
{
for(int i = 0; i < inParam.Length; i++)
Cmd.Parameters.Add(inParam[i]);
}
//添加输出参数
if(outParam != null)
{
for(int i = 0; i < outParam.Length; i++)
Cmd.Parameters.Add(outParam[i]);
}
//以无返回方式执行数据库命令
try
{
Cmd.ExecuteNonQuery();
}
catch
{
return 7;
}
return 0;
}
//过程名称:ExecStoredProc
//功能:执行一个需要返回数据集的存储过程
//参数:ProcName 存储过程名字,使用包时要加上包的名字
// inParam 存储过程需要的输入参数
// outParam 存储过程需要的输出参数,注意,这是引用参数
// outDataReader 接收数据集的参数,注意,这是引用参数
//返回值:0表示成功,大于零表示错误号
public static int ExecStoredProc(string ProcName, OracleParameter[] inParam,
ref OracleParameter[] outParam, ref OracleDataReader outDataReader)
{
if(Connection.DBConnection.State != ConnectionState.Open)
Connection.DBConnection.Open();
OracleCommand Cmd = new OracleCommand(ProcName, Connection.DBConnection);
Cmd.CommandType = CommandType.StoredProcedure;
if(inParam != null)
{
for(int i = 0; i < inParam.Length; i++)
Cmd.Parameters.Add(inParam[i]);
}
if(outParam != null)
{
for(int i = 0; i < outParam.Length; i++)
Cmd.Parameters.Add(outParam[i]);
}
try
{
outDataReader = Cmd.ExecuteReader();
}
catch
{
return 7;
}
return 0;
}
//过程名称:ExecStoredProc
//功能:执行一个需要返回数据集的存储过程
//参数:ProcName 存储过程名字,使用包时要加上包的名字
// inParam 存储过程需要的输入参数
// outParam 存储过程需要的输出参数,注意,这是引用参数
// outDataset 接收数据集的参数,注意,这是引用参数
//返回值:0表示成功,大于零表示错误号
public static int ExecStoredProc(string ProcName, OracleParameter[] inParam,
ref OracleParameter[] outParam, ref DataSet outDataSet)
{
if(Connection.DBConnection.State != ConnectionState.Open)
Connection.DBConnection.Open();
OracleCommand Cmd = new OracleCommand(ProcName, Connection.DBConnection);
Cmd.CommandType = CommandType.StoredProcedure;
if(inParam != null)
{
for(int i = 0; i < inParam.Length; i++)
Cmd.Parameters.Add(inParam[i]);
}
if(outParam != null)
{
for(int i = 0; i < outParam.Length; i++)
Cmd.Parameters.Add(outParam[i]);
}
try
{
OracleDataAdapter DataAdapter = new OracleDataAdapter(Cmd);
DataAdapter.Fill(outDataSet);
}
catch
{
return 7;
}
return 0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -