2017-08-31 11 views
0

値が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); 

答えて

6

あなたはuintを使用しています。 uunsignedの略で、負であってはいけません(「符号」は「負の符号」を意味します)。通常の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); 

ない符号なし整数。

+0

@Vannaあなたのポイントは何ですか?それは無関係に署名されるべきではありません。 – Soviut

+0

@スティファン何を意味するのですか? – Soviut

+0

@Soviut: 'PCS [i ++]。TestStatus'も' uint'型なので、 'PCS [i ++]。TestStatus = rdr.GetInt16(-1);'は適合しません。 – Stefan

5

UInt16の範囲は0〜65,535です。負の値はカバーしません。通常のInt16を試してください。

+0

@ Stefan-はタイプミスでした。今すぐ修正されました。 – Cooleshwar

関連する問題