2013-03-10 68 views
0

訂單表我有以下數據:SQL語句返回只有一個記錄

OrderNum | Item | Quantity| 
1234  | EE1 | 1  | 
1234  | EE3 | 1  | 
1235  | EE2 | 1  | 
1236  | EE5 | 1  | 
1236  | EE8 | 1  | 

我想在DataGridView中那些爲了與1234

訂單號碼這是我的代碼顯示..但它只顯示一個記錄。EE1項目。

 con.Open(); 
     com.CommandText = "SELECT * FROM Orders WHERE OrderNo="+Convert.ToInt32(txtStudNo.Text)+""; 

     reader = com.ExecuteReader(); 


     int indx = dataGridView1.Rows.Add(); 
     DataGridViewRow row = dataGridView1.Rows[indx]; 

     if (reader.HasRows) 
     { 
      while (reader.Read()) 
      { 
       com2.CommandText = "SELECT Description, Price FROM Books WHERE BookID='" + reader[2].ToString() + "'"; 
       reader2 = com2.ExecuteReader(); 
        if (reader2.Read()) 
        { 
         row.Cells[0].Value = reader[2].ToString(); 
         row.Cells[1].Value = reader2[0].ToString(); 
         row.Cells[2].Value = reader[4].ToString(); 
         row.Cells[3].Value = reader2[1].ToString(); 
        } 

       } 

需要一些幫助..請。

+0

如果您對此進行調試,您可能會發現結果集返回了多行數據。問題在於你只是用數據覆蓋網格中的同一行。 – PhoenixReborn 2013-03-10 15:14:42

+0

您只添加一行。這是你不斷給不同的值分配的行。 – 2013-03-10 16:02:31

回答

1

你正在寫的所有記錄只有一行:

dataGridView1.Rows[indx]; 

爲了不覆蓋寫入GridView中datanalready,你必須增加indx價值,並得到每個記錄另一行參考。

也許下列代碼正在爲你工作?

con.Open(); 
com.CommandText = "SELECT * FROM Orders WHERE OrderNo="+Convert.ToInt32(txtStudNo.Text)+""; 

reader = com.ExecuteReader(); 

if (reader.HasRows) 
{ 
    while (reader.Read()) 
    { 
     int indx = dataGridView1.Rows.Add(); 
     DataGridViewRow row = dataGridView1.Rows[indx]; 

     com2.CommandText = "SELECT Description, Price FROM Books WHERE BookID='" + reader[2].ToString() + "'"; 
     reader2 = com2.ExecuteReader(); 

     if (reader2.Read()) 
     { 
      row.Cells[0].Value = reader[2].ToString(); 
      row.Cells[1].Value = reader2[0].ToString(); 
      row.Cells[2].Value = reader[4].ToString(); 
      row.Cells[3].Value = reader2[1].ToString(); 
     } 
    } 
} 
+0

好的..謝謝..我會試試這個。 – kv1809 2013-03-10 15:30:19

+0

我該怎麼做,我嘗試了很多想法,但我的想法是錯誤的。 – kv1809 2013-03-12 15:43:26

+0

看看我編輯的答案。 – user2154065 2013-03-14 20:13:51