using System.Data;
namespace Elsa.Sql.Client;
public abstract class BaseSqlClient
{
///
/// Returns data as a .
///
/// Reader to return data from.
/// of data.
protected static DataSet ReadAsDataSet(IDataReader reader)
{
var dataSet = new DataSet("dataset");
var schematable = reader.GetSchemaTable();
var data = new DataSet();
dataSet.Tables.Add(ReadAsDataTable(reader));
return dataSet;
}
///
/// Returns data as a .
///
/// Reader to return data from.
/// of data.
protected static DataTable ReadAsDataTable(IDataReader reader)
{
var data = new DataTable();
var schemaTable =reader.GetSchemaTable();
foreach (DataRow row in schemaTable.Rows)
{
string colName = row.Field("ColumnName");
Type t = row.Field("DataType");
data.Columns.Add(colName, t);
}
while (reader.Read())
{
var newRow = data.Rows.Add();
foreach (DataColumn col in data.Columns)
{
newRow[col.ColumnName] = reader[col.ColumnName];
}
}
return data;
}
}