using System.Collections.Generic; // List
using System.Configuration; // ConfigurationManager
using System.Data; // IDataRecord
using System.Text; // StringBuilder
using ReportingDashboard.Interfaces; // ISqlCcc
using System.Data.SqlClient; // SqlConnection, SqlCommand, SqlParameter
namespace ReportingDashboard.Common
{
public class SqlCcc : ISqlCcc
{
#region connection bits
public string ConnectionStrName
{
get { return "Default"; }
}
public string ConnectionStr
{
get { return ConnStrs[ConnectionStrName].ConnectionString; }
}
public ConnectionStringSettingsCollection ConnStrs
{
get
{
return ConfigurationManager.ConnectionStrings;
}
}
private SqlConnection conn
{
get
{
return new SqlConnection(ConnectionStr);
}
}
#endregion connection bits
public int Execute(string commandText, params object[] args)
{
using (var connection = conn)
{
var command = new SqlCommand(commandText, connection);
connection.Open();
var data = command.ExecuteNonQuery();
return data;
}
}
public List<string> Query(string commandText, params SqlParameter[] parameters)
{
using (var connection = conn)
{
var command = new SqlCommand(CommandUpdate(commandText), connection);
foreach (var item in parameters)
{
command.Parameters.Add(item);
}
connection.Open();
var reader = command.ExecuteReader();
var result = new StringBuilder();
while (reader.Read())
{
result.Append(((IDataRecord)reader)[0]);
}
reader.Close();
reader.Dispose();
var o = new List<string> { result.ToString() };
return o;
}
}
private string CommandUpdate(string queryString, params object[] parameters)
{
var index = 0;
var returnedCommandString = queryString;
foreach (object p in parameters)
{
var rs = "N'" + ((p != null) ? p.ToString() : string.Empty) + "'";
returnedCommandString = returnedCommandString.Replace("@" + index, rs);
index++;
}
return returnedCommandString;
}
}
}
No comments:
Post a Comment