AIMS/AIMSExtension/HisDBHelper.cs
2022-12-27 17:33:33 +08:00

291 lines
9.8 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using HelperDB;
using Oracle.ManagedDataAccess.Client;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace AIMSExtension
{
public static class HisDBHelper
{
private static string _ConnectionString = new XmlUse(Application.StartupPath + "\\AIMS.xml").GetNode("HisConnectionStringOracel")[0].ToString();
private static OracleConnection mConnection;
/// <summary>
/// 得到一个已经Open的Connection连接对象
/// </summary>
public static OracleConnection Connection
{
get
{
if (mConnection == null)
{
mConnection = new OracleConnection(_ConnectionString);
}
if (mConnection.State == ConnectionState.Broken)
{
mConnection.Close();
mConnection.Open();
}
if (mConnection.State == ConnectionState.Closed)
{
mConnection.Open();
}
return mConnection;
}
}
/// <summary>
/// 执行sql操作增、删、改
/// </summary>
/// <param name="sql">sql语句</param>
/// <returns>执行的记录数</returns>
public static int ExecNonQuery(string sql)
{
OracleCommand cmd = new OracleCommand(sql, Connection);
return cmd.ExecuteNonQuery();
}
/// <summary>
/// 执行sql操作增、删、改以参数方式传值
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="values">参数数组</param>
/// <returns>执行的记录数</returns>
public static int ExecNonQuery(string sql, params SqlParameter[] values)
{
OracleCommand cmd = new OracleCommand(sql, Connection);
cmd.Parameters.AddRange(values);
return cmd.ExecuteNonQuery();
}
/// <summary>
/// 执行sql查询得到单个值
/// </summary>
/// <param name="safeSql">得到单个值的sql查询语句</param>
/// <returns>单个值对象</returns>
public static object ExecuteScalar(string safeSql)
{
OracleCommand cmd = new OracleCommand(safeSql, Connection);
return cmd.ExecuteScalar();
}
/// <summary>
/// 执行sql查询得到单个值以参数方式传值
/// </summary>
/// <param name="safeSql">得到单个值的sql查询语句</param>
/// <param name="values">参数数组</param>
/// <returns>单个值对象</returns>
public static object ExecuteScalar(string safeSql, params SqlParameter[] values)
{
OracleCommand cmd = new OracleCommand(safeSql, Connection);
cmd.Parameters.AddRange(values);
return cmd.ExecuteScalar();
}
/// <summary>
/// 执行sql查询得到一个DataReader对象
/// </summary>
/// <param name="sql">sql查询语句</param>
/// <returns>DataReader对象</returns>
public static OracleDataReader GetDataReader(string sql)
{
OracleCommand cmd = new OracleCommand(sql, Connection);
OracleDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
/// <summary>
/// 执行sql查询得到一个DataReader对象以参数方式传值
/// </summary>
/// <param name="sql">sql查询语句</param>
/// <param name="values">参数数组</param>
/// <returns>DataReader对象</returns>
public static OracleDataReader GetDataReader(string sql, params SqlParameter[] values)
{
OracleCommand cmd = new OracleCommand(sql, Connection);
cmd.Parameters.AddRange(values);
OracleDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
/// <summary>
/// 执行sql查询得到一个DataTable对象
/// </summary>
/// <param name="sql">sql查询语句</param>
/// <returns>DataTable</returns>
public static DataTable GetDataTable(string sql)
{
OracleDataAdapter da = new OracleDataAdapter(sql, Connection);
DataSet ds = new DataSet();
da.Fill(ds);
return ds.Tables[0];
}
/// <summary>
/// 执行sql查询得到一个DataTable对象以参数方式传值
/// </summary>
/// <param name="sql">sql查询语句</param>
/// <param name="values">参数数组</param>
/// <returns>DataTable</returns>
public static DataTable GetDataTable(string sql, params SqlParameter[] values)
{
OracleDataAdapter da = new OracleDataAdapter(sql, Connection);
da.SelectCommand.Parameters.AddRange(values);
DataSet ds = new DataSet();
da.Fill(ds);
return ds.Tables[0];
}
/// <summary>
/// 执行sql查询得到一个DataSet对象
/// </summary>
/// <param name="sql">sql查询语句</param>
/// <returns>DataSet</returns>
public static DataSet GetDataSet(string sql)
{
OracleDataAdapter da = new OracleDataAdapter(sql, Connection);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
/// <summary>
/// 执行sql查询得到一个DataSet对象以参数方式传值
/// </summary>
/// <param name="sql">sql查询语句</param>
/// <param name="values">参数数组</param>
/// <returns>DataSet</returns>
public static DataSet GetDataSet(string sql, params SqlParameter[] values)
{
OracleDataAdapter da = new OracleDataAdapter(sql, Connection);
da.SelectCommand.Parameters.AddRange(values);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
/// <summary>
/// 事务
/// </summary>
/// <param name="sqlStr"></param>
/// <returns></returns>
public static bool ExecuteTrasaction(string sqlStr)
{
bool result = true;
OracleTransaction tran = null;
try
{
tran = Connection.BeginTransaction();
OracleCommand cmd = new OracleCommand(sqlStr, Connection);
cmd.ExecuteNonQuery();
tran.Commit();
result = true;
}
catch
{
tran.Rollback();
result = false;
}
return result;
}
/// <summary>
/// 事务
/// </summary>
/// <param name="sqlStr"></param>
/// <returns></returns>
public static bool ExecuteTrasaction(List<string> sqlStr)
{
bool result = true;
OracleTransaction tran = null;
try
{
tran = Connection.BeginTransaction();
for (int i = 0; i < sqlStr.Count; i++)
{
OracleCommand cmd = new OracleCommand(sqlStr[i], Connection);
cmd.ExecuteNonQuery();
}
tran.Commit();
result = true;
}
catch
{
tran.Rollback();
result = false;
}
return result;
}
/// <summary>
/// 拆箱获得int
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static int GetInt(object obj)
{
return (int)obj;
}
/// <summary>
/// 拆箱获得float
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static float GetFloat(object obj)
{
return (float)obj;
}
/// <summary>
/// 拆箱获得double
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static double GetDouble(object obj)
{
return (double)obj;
}
/// <summary>
/// 拆箱获得long
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static long GetLong(object obj)
{
return (long)obj;
}
/// <summary>
/// 拆箱获得decimal
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static decimal GetDecimal(object obj)
{
return (decimal)obj;
}
/// <summary>
/// 拆箱获得bool
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static bool GetBoolean(object obj)
{
return (bool)obj;
}
/// <summary>
/// 拆箱获得DateTime
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static DateTime GetDateTime(object obj)
{
return (DateTime)obj;
}
/// <summary>
/// 拆箱获得string
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static string GetString(object obj)
{
return obj + "";
}
public static DateTime SystemDate()
{
string sqlStr = "select getdate() as SysDate";
DataTable dt = GetDataTable(sqlStr);
return DateTime.Parse(DateTime.Parse(dt.Rows[0]["SysDate"].ToString()).ToString("yyyy-MM-dd HH:mm:ss"));
}
}
}