我有一个数据库列,其中包含值1
,0
,-1
。我在我的课程和代码段中使用uint
和GetUInt16
,如下所示。不知何故,负值不会反映出来。我应该使用什么数据类型来查看类和rdr
中的负值?
public class Postcommit
{
public string software_image_build { get; set; }
public uint TestStatus { get; set; }
}
代码段:
PCS[i++].TestStatus = rdr.GetUInt16(1);
答案 0 :(得分:6)
您正在使用uint
。 u
代表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
。