负值未反映在输出中

时间:2017-08-31 17:18:24

标签: c#

我有一个数据库列,其中包含值10-1。我在我的课程和代码段中使用uintGetUInt16,如下所示。不知何故,负值不会反映出来。我应该使用什么数据类型来查看类和rdr中的负值?

public class Postcommit
{
    public string software_image_build { get; set; }
    public uint TestStatus { get; set; }
}

代码段:

  PCS[i++].TestStatus = rdr.GetUInt16(1);

2 个答案:

答案 0 :(得分:6)

您正在使用uintu代表unsigned,意味着它不能为负数("符号"指的是"负号")。你应该使用正常的int。同样,您应该使用rdr.GetInt16(1)来获取值。

public class Postcommit
{
    public string software_image_build { get; set; }
    public int TestStatus { get; set; }
}

...

PCS[i++].TestStatus = rdr.GetInt16(1);

因此,在整个过程中的每一步,从数据库到代码,每个类型必须设置为整数,不是无符号整数。

答案 1 :(得分:5)

UInt16的范围是0到65,535。它没有涵盖负值。您应该尝试常规Int16