Files
hrm_eva/Utils/MyDatabase.cs
2021-05-30 12:41:44 +07:00

96 lines
3.1 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Npgsql;
using NpgsqlTypes;
namespace TTSW.Utils
{
public class MyDatabase : IMyDatabase
{
public IConfiguration Configuration { get; set; }
public MyDatabase(IConfiguration configuration)
{
Configuration = configuration;
}
public DataTable ExecuteDataTableNpgsql(string queryString, List<NpgsqlParameter> para)
{
System.Data.DataSet ds = new DataSet();
string connectionString = MyHelper.GetConfig(Configuration, "connectionStrings:externalDBConnectionString");
using (NpgsqlConnection conn = new NpgsqlConnection(connectionString))
using (NpgsqlCommand cmd = new NpgsqlCommand(queryString, conn))
{
if (para != null) cmd.Parameters.AddRange(para.ToArray());
using (NpgsqlDataAdapter ad = new NpgsqlDataAdapter(cmd))
{
ad.Fill(ds, "mytable");
}
}
return ds.Tables["mytable"];
}
public int ExecuteNonQueryNpgsql(string queryString, List<NpgsqlParameter> para)
{
int rowAffected = -1;
string connectionString = MyHelper.GetConfig(Configuration, "connectionStrings:externalDBConnectionString");
using (NpgsqlConnection conn = new NpgsqlConnection(connectionString))
using (NpgsqlCommand cmd = new NpgsqlCommand(queryString, conn))
{
conn.Open();
if (para != null) cmd.Parameters.AddRange(para.ToArray());
rowAffected = cmd.ExecuteNonQuery();
}
return rowAffected;
}
public string ExecuteScalarNpgsql(string queryString, List<NpgsqlParameter> para)
{
string result = "";
string connectionString = MyHelper.GetConfig(Configuration, "connectionStrings:externalDBConnectionString");
using (NpgsqlConnection conn = new NpgsqlConnection(connectionString))
using (NpgsqlCommand cmd = new NpgsqlCommand(queryString, conn))
{
conn.Open();
if (para != null) cmd.Parameters.AddRange(para.ToArray());
result = cmd.ExecuteScalar().ToString();
}
return result;
}
public List<NpgsqlParameter> GetParameterListNpgsql()
{
return new List<NpgsqlParameter>();
}
public NpgsqlParameter GetParameterNpgsql(string name, NpgsqlDbType type, int size, object value)
{
var i = new NpgsqlParameter(name, type, size);
i.Value = value;
return i;
}
public NpgsqlParameter GetParameterNpgsql(string name, NpgsqlDbType type, object value)
{
var i = new NpgsqlParameter(name, type);
i.Value = value;
return i;
}
}
}