2017-08-11 11 views
1

値のビットタイプのデータを持つテーブルが2つの値0と1を含んでいます。チェックボックスに読み込みたいのですが、以下のコードがありますが、0または1の場合は、チェックボックス。それをチェックボックスに読み込む方法は?助けてください。どうもありがとうございました。チェックボックスでデータベースからデータを読み取る方法

SqlCommand cmd1 = new SqlCommand("Select Purchasing From ERPManualGuide", con); 
SqlDataReader reader1 = cmd1.ExecuteReader(); 
CheckBox5.Checked = reader1.Read(); 
+0

あなたがリーダーを呼び出す必要がありますが.GetBoolean()はデータベースから読み込みます。何かのように: reader1.Read(); Checkbox5.Checked = reader1GetBoolean(i) (ここでは、私はあなたの列番号です) – Etienne

答えて

0

を参照してください、ここであなたは、データベースからのみ、単一のセルの値を取得しているので、読者は、この場合には必要ありません。私はExecuteScalarを使用することをお勧めします。これは、クエリによって返された結果セットの最初の行の最初の列を返します。追加の列または行は無視されます。そしてあなたがブール値にそれらをキャストする必要があるので、型オブジェクトであるので、コードの変更は次のようになります。

SqlCommand cmd = new SqlCommand("Select Purchasing From ERPManualGuide", con); 
CheckBox5.Checked = (bool)cmd.ExecuteScalar(); 

あなたはさらにいくつかのことを注意する必要があります。

  • cmdCheckBox5などがない良い名です変数名にも注意してください。
  • この場合、列のタイプはブール値に変換可能です。つまり、
  • の場合は bit fieldとなります。 210
  • あなたは、あなたがreader.HasRowsをチェックする必要があり、その場合にはExecuteScalar()
  • のために代わりSqlDataReaderを進める複数の列をフェッチする状況にある場合、このような値にアクセス:CheckBox5.Checked = (bool)reader1["Purchasing"];
+0

@ThànhNguyễn:それを聞いてうれしい、あなたを助けてうれしい!あなたが受け入れているとマークすることを忘れないことを願って –

+0

ああ、いいえ!この場合は正しくありません。私のデータベースにはテーブルがあり、0と1の2つの値があります。そのように使うと、ページを読み込むときに常にチェックボックスがチェックされます。 –

+0

幸運なことに....それはエラーを表示指定されたキャストは払われません。 –

関連する問題