【发布时间】:2018-02-07 13:11:35
【问题描述】:
我有一个这样的银行主表枚举(列名:BankAccountType)
public enum eBankAccountType
{
Savings = 1,
Current = 2,
CC = 3,
Other = 4,
}
我将每一行的枚举值存储在一个表数据库中。
现在在从数据库中获取记录时,我只返回这个枚举值。但是我应该如何在 C# 中编写一个接受
的泛型方法- 数据表(从数据库选择查询返回)
- ColumnName(s)(具有从表 Bank 中检索到的值,例如 1,2 等,在本例中为“BankAccountType”)和
- EnumType(s)(我想在 Enum 字符串中将此列值转换为该类型,例如
BankAccountType == 1然后Savings、BankAccountType == 2然后Current等等)
并返回一个为每一行添加一个新列的数据表(在本例中为“BankAccountTypeDescription”)
请注意,从数据库返回的数据表可以有多个由不同枚举填充的列。
如果我使用任何静态枚举类型,我都能做到,但我想创建更多通用方法。
我正在尝试创建一个类似这样的通用方法。
public DataTable GetDescriptionforEnumColumn(DataTable dt, Enum[] objEnum, string[] colName)
{
foreach (string item in colName)
{
string strIDColumnName = item;
string strNewColumnName = item + "Description";
dt.Columns.Add(strNewColumnName);
foreach (DataRow row in dt.Rows)
{
row[strNewColumnName] = Enum.Parse(objEnum[0].GetType(), ConvertTo.String(row[item]), true);
}
}
return dt;
}
然后这样称呼它。
GetDescriptionforEnumColumn(dtBank, array of enum, array of columNames);
但我遇到的问题是在这个泛型方法中传递和检索枚举(或枚举类型)数组。
【问题讨论】:
-
你试过了吗?你第一次尝试编写这样一个通用方法是什么?
-
大概您开始编写一个方法,该方法采用
DataTable和列名和枚举类型;进展如何?你在哪里卡住了?另外:为什么人们仍然坚持使用DataTable? -
用我到目前为止所尝试的方法更新了问题。
-
@MarcGravell,你不使用数据表是对的,但我正在从事的项目是几年前的 asp .net,只有数据表。因此将其转换为 List 或其他任何内容将是一项艰巨的任务
标签: c# generics enums datatables