using System; using System.Collections.Generic; using System.Data; using System.Linq; namespace Kreta.DataAccessManual.Extensions { public static class DataSetExtensions { public static List GetIdListFromFirstTable(this DataSet dataSet) { return dataSet.Tables[0] .AsEnumerable() .Select(r => r.Field("ID")) .ToList(); } public static DataTable ConvertColumnTypes(this DataTable dataTable, Dictionary columnNameColumnTypeDictionary) { var clonedDataTable = dataTable.Clone(); foreach (var columnNameColumnType in columnNameColumnTypeDictionary) { clonedDataTable.Columns[columnNameColumnType.Key].DataType = columnNameColumnType.Value; } foreach (DataRow dataRow in dataTable.Rows) { clonedDataTable.ImportRow(dataRow); } return clonedDataTable; } public static DataTable ConvertColumnType(this DataTable dataTable, string columnName, Type newType) { return dataTable.ConvertColumnTypes(new Dictionary { { columnName, newType } }); } } }