38 lines
1.2 KiB
C#
38 lines
1.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
|
|
namespace Kreta.DataAccessManual.Extensions
|
|
{
|
|
public static class DataSetExtensions
|
|
{
|
|
public static List<int> GetIdListFromFirstTable(this DataSet dataSet)
|
|
{
|
|
return dataSet.Tables[0]
|
|
.AsEnumerable()
|
|
.Select(r => r.Field<int>("ID"))
|
|
.ToList();
|
|
}
|
|
|
|
public static DataTable ConvertColumnTypes(this DataTable dataTable, Dictionary<string, Type> 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<string, Type> { { columnName, newType } });
|
|
}
|
|
}
|
|
}
|