AIMS/AIMSExtension/PGDBHelper.cs
2023-04-14 21:06:26 +08:00

300 lines
10 KiB
C#
Raw 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 System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Windows.Forms;
using Npgsql;
using HelperDB;
namespace AIMSExtension
{
public static class PGDBHelper
{
public static readonly string _ConnectionString = new XmlUse(Application.StartupPath + "\\AIMS.xml").GetNode("HisConnectionStringOracel")[0].ToString();
/// <summary>
/// 执行sql操作增、删、改
/// </summary>
/// <param name="sql">sql语句</param>
/// <returns>执行的记录数</returns>
public static int ExecNonQuery(string sql)
{
using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
using (NpgsqlCommand cmd = conn.CreateCommand())
{
cmd.Parameters.Clear();
cmd.CommandText = sql;
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)
{
using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
using (NpgsqlCommand cmd = conn.CreateCommand())
{
cmd.Parameters.Clear();
cmd.CommandText = sql;
cmd.Parameters.AddRange(values);
return cmd.ExecuteNonQuery();
}
}
}
/// <summary>
/// 执行sql查询得到单个值
/// </summary>
/// <param name="safeSql">得到单个值的sql查询语句</param>
/// <returns>单个值对象</returns>
public static object ExecuteScalar(string safeSql)
{
using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
using (NpgsqlCommand cmd = conn.CreateCommand())
{
cmd.Parameters.Clear();
cmd.CommandText = safeSql;
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)
{
using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
using (NpgsqlCommand cmd = conn.CreateCommand())
{
cmd.Parameters.Clear();
cmd.CommandText = safeSql;
cmd.Parameters.AddRange(values);
return cmd.ExecuteScalar();
}
}
}
/// <summary>
/// 执行sql查询得到一个DataReader对象以参数方式传值
/// </summary>
/// <param name="sql">sql查询语句</param>
/// <param name="values">参数数组</param>
/// <returns>DataReader对象</returns>
public static NpgsqlDataReader GetDataReader(string sql, params SqlParameter[] values)
{
using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
NpgsqlCommand cmd = new NpgsqlCommand(sql, conn);
cmd.Parameters.AddRange(values);
NpgsqlDataReader 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)
{
using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
DataSet ds = new DataSet();
NpgsqlCommand cmd = new NpgsqlCommand(sql, conn);
NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd);
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)
{
using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
DataSet ds = new DataSet();
NpgsqlCommand cmd = new NpgsqlCommand(sql, conn);
if (values != null)
cmd.Parameters.AddRange(values);
NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd);
try
{
da.Fill(ds);
}
catch (Exception)
{
}
return ds.Tables[0];
}
}
/// <summary>
/// 执行sql查询得到一个DataSet对象
/// </summary>
/// <param name="sql">sql查询语句</param>
/// <returns>DataSet</returns>
public static DataSet GetDataSet(string sql)
{
using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
DataSet ds = new DataSet();
NpgsqlCommand cmd = new NpgsqlCommand(sql, conn);
NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd);
try
{
da.Fill(ds);
}
catch (Exception)
{
}
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)
{
using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString))
{
if (conn.State != ConnectionState.Open)
conn.Open();
DataSet ds = new DataSet();
NpgsqlCommand cmd = new NpgsqlCommand(sql, conn);
if (values != null)
cmd.Parameters.AddRange(values);
NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd);
try
{
da.Fill(ds);
}
catch (Exception)
{
}
return ds;
}
}
/// <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"));
}
}
}