2015-12-23 62 views
0

我面臨的一個問題是,我從數據庫中選擇行以顯示在網格中:結果只有一行顯示在網格上,其餘沒有顯示。如何顯示數據庫中的每行和列數據到Datagridview

這裏是我的代碼:

conn() 
Dim qry As String = "select SN,Product_ID,Product_Description,Quantity,Supplier_Name from materialreq where Req_No=" & TextBox1.Text & "" 

cmd = New SqlCommand(qry, cn) 

dr = cmd.ExecuteReader() 

Dim i As Integer = 0 

While dr.Read() And i = DataGridView1.Rows.Count - 1 

    DataGridView1.Rows(i).Cells("Column1").Value = dr("SN") 
    DataGridView1.Rows(i).Cells("Column2").Value = dr("Product_ID") 
    DataGridView1.Rows(i).Cells("Column3").Value = dr("Product_Description") 
    DataGridView1.Rows(i).Cells("Column4").Value = dr("Quantity") 
    DataGridView1.Rows(i).Cells("Column5").Value = dr("Supplier_Name") 
    'DataGridView1.Rows(DataGridView1.Rows.Count - 1).Cells("Column3").Value = dr("Product_Description").ToString() 
    'DataGridView1.Rows(DataGridView1.Rows.Count - 1).Cells("Column4").Value = dr("Quantity").ToString() 
    'DataGridView1.Rows(DataGridView1.Rows.Count - 1).Cells("Column5").Value = dr("Supplier_Name").ToString() 
    i = i + 1 

End While 

cn.Close() 
+1

嘗試'讀取所有數據雖然dr.Read()和我<= DataGridView1.Rows.Count - 1' – DeanOC

回答

0

這似乎像問題的關鍵在於你的SQL查詢中。

where Req_No=" & TextBox1.Text & " 

查詢的這部分上面將限制行返回只有一行。

我建議用替換上面的查詢:

where Req_No LIKE %" & TextBox1.Text & " 

這將返回與「Req_No」是不是與「Req_No」是等同於輸入的文本行類似於輸入的文本,行。

如果您沒有執行搜索功能。完全刪除Where子句。

0

確保選擇查詢將返回所需的輸出(多行),你可以使用下面提及的代碼在SqlDataReader

If dr.HasRows Then 
    While dr.Read 
      DataGridView1.Rows(i).Cells("Column1").Value = dr("SN") 
      DataGridView1.Rows(i).Cells("Column2").Value = dr("Product_ID") 
      DataGridView1.Rows(i).Cells("Column3").Value = dr("Product_Description") 
      DataGridView1.Rows(i).Cells("Column4").Value = dr("Quantity") 
      DataGridView1.Rows(i).Cells("Column5").Value = dr("Supplier_Name") 
    End While 
End If 
相關問題