0

我有强类型数据集。现在我想用 linq 对数据表进行选择。

我的问题是该表具有允许空值的数字列。但是,如果此列中的数据行没有值,我不知道要执行 Select- 命令。

这是我的查询:

var query = from tab1 in localDataSet.simpleTable
            select new {
               line = tab1.IsLineNull ? null : tab1.line,
               wait = tab1.IswaitNull() ? null : tab1.wait
            }

如果 tab1.IsLineNull() 返回 true,我无法设置 line = null,因为数据类型“十进制”(以及所有其他数字值类型)不能为空。但是我应该选择什么呢?我也不能选择0。

4

3 回答 3

0

我假设您不知道如何创建Nullable<T>

var query = from tab1 in localDataSet.simpleTable
        select new {
           line = tab1.IsLineNull ?   new Nullable<decimal>(): tab1.line,
           wait = tab1.IswaitNull() ? new Nullable<decimal>(): tab1.wait
        }
于 2012-12-06T14:35:26.147 回答
0

你必须在你的 ? : 到 tab1.line 和 tab1.wait 的类型。

var query = from tab1 in localDataSet.simpleTable
            select new {
               line = tab1.IsLineNull ? (decimal?)null : tab1.line,
               wait = tab1.IswaitNull() ? (decimal?)null : tab1.wait
            }
于 2012-12-06T14:35:35.003 回答
0

放一个

(int?) 

或者

(decimal?)

之前null,它将 转换null为可为空的整数/小数

另外,如果你的方法:

IsLineNull
IswaitNull

只需控制字段是否为空,您可以减少以下问题:

var query = from tab1 in localDataSet.simpleTable
            select new {
               line = (int?)tab1.line,
               wait = (int?)tab1.wait
            }
于 2012-12-06T14:36:24.740 回答