DataColumn DataType int和long

时间:2012-02-06 07:28:16

标签: c# datatable

是否可以在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];

1 个答案:

答案 0 :(得分:1)

我建议在long类型变量中收集datacolumn值,检查它的值是否小于int.MaxValue并且大于int.MinValue,然后在需要的时候将其转换为int变量。