[英]Adding a column of type enum to datatable column
鉴于:
namespace VolumeProfileStateEntity
{
public enum VolumeProfileState
{
AboveHigh,
AboveValue,
AtOrNearValue,
BelowValue,
BelowLow
}
}
我想添加一个类型为VolumeProfileState
的column
:
DataTable dt1 = new DataTable("State");
在尝试添加VolumeProfileState
类型的列之前,可以将columns
添加到DataTable
中很好:
// Add columns to the DataTable.
var dc1 = dt1.Columns.Add("TimeFrame",
System.Type.GetType("System.String"));
dc1.ReadOnly = true;
dt1.Columns.Add("Hi",
System.Type.GetType("System.Double"));
dt1.Columns.Add("Low",
System.Type.GetType("System.Double"));
dt1.Columns.Add("Middle",
System.Type.GetType("System.Double"));
dt1.Columns.Add("State",
System.Type.GetType("VolumeProfileStateEntity.VolumeProfileState"));
Exception thrown: 'System.ArgumentNullException' in System.Data.dll
我知道我可以将列类型
System.Type.GetType("System.Int32"));
但是然后输入数据时出现问题,因为Int32
不能IConvertible
为enum
类型AFAIK。
我是在做错什么,还是只能添加System.X
列类型而不是enums
?
您应该将数据库列用作int,然后在检索时将值强制转换为枚举。 您也可以将列作为字符串进行处理,然后在检索时将其强制转换为枚举。 但是int存储空间较小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.