是否可以在DataTable中包含一个包含int和long值的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];
答案 0 :(得分:1)
我建议在long类型变量中收集datacolumn值,检查它的值是否小于int.MaxValue并且大于int.MinValue,然后在需要的时候将其转换为int变量。