Вы можете напрямую привести к перечислению. то есть:
if ((SomeEnum)data["rowName"] == SomeEnum.EnumValue)
Вы не хотите преобразовывать в строку.
Примечание. И, как правило, оно фильтруется при извлечении данных из базы данных.
РЕДАКТИРОВАТЬ: Маловероятно, что значения enum будут храниться в базе данных в виде строки. Ожидаемый тип является целым числом. Это не приведет к исключению, если в базе данных есть значение (скажем, целое число), которого нет в значениях перечисления. Вот демонстрационный пример с использованием базы данных Northwind (обратите внимание, что грузоотправитель Federal Express не определен в значениях Enum):
void Main()
{
DataTable tbl = new DataTable();
using (SqlConnection con = new SqlConnection(@"server=.\SQLEXpress;Database=Northwind;Trusted_Connection=yes"))
{
con.Open();
var reader = new SqlCommand("select * from Orders",con).ExecuteReader();
while (reader.Read())
{
if ((Shipper)reader["ShipVia"] != Shipper.SpeedyExpress)
{
Console.WriteLine($@"{(int)reader["OrderId"]}, {(Shipper)reader["ShipVia"]}");
}
}
}
}
public enum Shipper
{
None,
SpeedyExpress,
UnitedPackage
}