2017-08-11 83 views
1

我有一個表的值位類型的數據包括兩個值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等都不好名字變量和控制,你應該遵循一些命名標準,照顧而命名變量
  • 在這種情況下Purchasing列的類型可以轉換爲布爾值,這意味着這將是bit field數據庫
  • 如果你在獲取更多的列然後用SqlDataReader繼續而不是爲ExecuteScalar()
  • 在您需要檢查reader.HasRows這種情況下的情況,然後訪問這樣的值:CheckBox5.Checked = (bool)reader1["Purchasing"];
+0

@ThànhNguyễn:很高興聽到這句話,很高興幫助你!希望你不會忘記標記爲已接受 –

+0

哦,不!在這種情況下這是不正確的。在我的數據庫中我有一個表,並且有兩個值0和1.如果使用這樣的話,當我加載頁面時,它總是會檢入複選框。 –

+0

非幸運....它顯示錯誤指定投它不vaid。 –

相關問題