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();
///
/// 执行sql操作(增、删、改)
///
/// sql语句
/// 执行的记录数
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();
}
}
}
///
/// 执行sql操作(增、删、改),以参数方式传值
///
/// sql语句
/// 参数数组
/// 执行的记录数
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();
}
}
}
///
/// 执行sql查询,得到单个值
///
/// 得到单个值的sql查询语句
/// 单个值对象
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();
}
}
}
///
/// 执行sql查询,得到单个值,以参数方式传值
///
/// 得到单个值的sql查询语句
/// 参数数组
/// 单个值对象
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();
}
}
}
///
/// 执行sql查询,得到一个DataReader对象,以参数方式传值
///
/// sql查询语句
/// 参数数组
/// DataReader对象
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;
}
}
///
/// 执行sql查询,得到一个DataTable对象
///
/// sql查询语句
/// DataTable
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];
}
}
///
/// 执行sql查询,得到一个DataTable对象,以参数方式传值
///
/// sql查询语句
/// 参数数组
/// DataTable
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];
}
}
///
/// 执行sql查询,得到一个DataSet对象
///
/// sql查询语句
/// DataSet
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;
}
}
///
/// 执行sql查询,得到一个DataSet对象,以参数方式传值
///
/// sql查询语句
/// 参数数组
/// DataSet
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;
}
}
///
/// 拆箱获得int
///
///
///
public static int GetInt(object obj)
{
return (int)obj;
}
///
/// 拆箱获得float
///
///
///
public static float GetFloat(object obj)
{
return (float)obj;
}
///
/// 拆箱获得double
///
///
///
public static double GetDouble(object obj)
{
return (double)obj;
}
///
/// 拆箱获得long
///
///
///
public static long GetLong(object obj)
{
return (long)obj;
}
///
/// 拆箱获得decimal
///
///
///
public static decimal GetDecimal(object obj)
{
return (decimal)obj;
}
///
/// 拆箱获得bool
///
///
///
public static bool GetBoolean(object obj)
{
return (bool)obj;
}
///
/// 拆箱获得DateTime
///
///
///
public static DateTime GetDateTime(object obj)
{
return (DateTime)obj;
}
///
/// 拆箱获得string
///
///
///
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"));
}
}
}