kreta/Kreta.DataAccessManual/Extensions/DataSetExtensions.cs
2024-03-13 00:33:46 +01:00

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