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; } }