2015-11-09 59 views
1

我有一個賦值表,其中有兩行。我想從兩行(1和3)中檢索set_number。我的代碼如下,現在它檢索3和3,這是不正確的。誰能幫我這個?從數據庫中檢索多行

MySqlCommand SelectCommand = new MySqlCommand("Select set_number from assignedset where patient_nric='" + NRIC + "'", myConn); 

MySqlDataReader myReader; 
myConn.Open(); 
myReader = SelectCommand.ExecuteReader(); 
int count = 0; 
while (myReader.Read()) 
{ 
    count = count + 1; 
} 
if (count > 0) 
{ 
    string SetName = myReader.GetString("set_number"); 
    //int[] numbers; 
    int s = 1; 
    while (s <= count) 
    { 
    MessageBox.Show(SetName); 
    s++; 
    } 

回答

0
while (myReader.Read()) 
{ 
    count = count + 1; 
} 

if (count > 0) 
{ 
    string SetName = myReader.GetString("set_number");  
    ... 

在你的代碼,你只能從你的最後一排的SET_NUMBER。

請嘗試以下操作。

while (myReader.Read()) 
{ 
    string SetName = myReader.GetString("set_number"); 
    MessageBox.Show(SetName); 
    count = count + 1; 
} 
0

邏輯錯誤。

while (myReader.Read()) 

用於讀取數據集中的每一行數據。

但你顯示結果 - > MessageBox.Show(SetName);在完成myReader.Read()循環後,當然你會永遠得到最後的結果,在你的情況下是「3」。

你應該做的事情如下: 試試看

if (myReader.HasRows) 
{ 
    while (myReader.Read()) 
    { 
     string SetName = myReader.GetString("set_number"); 
     MessageBox.Show(SetName); 
    } 
}