【发布时间】:2012-02-27 17:40:40
【问题描述】:
是否可以在包含 int 和 long 值的 DataTable 中有一个 DataColumn?如果是有效的 int,它应该返回一个 int 值,否则它应该返回一个 long 值。
对于我想要实现这一点的一些背景,我发布了一个创建 int 类型的 DataColumn 的产品,但它应该从一开始就很长。现在我不想破坏将值显式转换为 int 的现有项目,但我想在列中允许长值。
我可以在 DataTable 上订阅一个事件来将值转换为 int 吗?
以下代码应该可以正确执行。
DataTable dataTable = new DataTable();
dataTable.Columns.Add("IntAndLong", typeof(long));
DataRow intRow = dataTable.NewRow();
intRow[0] = 123;
dataTable.Rows.Add(intRow);
DataRow longRow = dataTable.NewRow();
longRow[0] = 3000000000;
dataTable.Rows.Add(longRow);
long longValue = (long)dataTable.Rows[1][0];
int intValue = (int)dataTable.Rows[0][0];
【问题讨论】: