using System; using System.Collections.Generic; using System.Data; using System.Linq; 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 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 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 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 GetParameterListNpgsql() { return new List(); } 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; } } }