如何将数据库中的每一行和列数据显示到Datagridview

时间:2015-12-23 07:13:19

标签: vb.net sqlcommand

我遇到的问题是我从数据库中选择要在网格中显示的行:结果只有一行显示在网格上,其余的没有显示。

这是我的代码:

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()

2 个答案:

答案 0 :(得分:0)

看起来问题出在你的SQL查询中。

where Req_No=" & TextBox1.Text & "

上面这部分查询将限制返回的行只有一行。

我建议用以下内容替换上面的查询:

where Req_No LIKE %" & TextBox1.Text & "

这将返回“Req_No”与输入文本类似的行,而不是“Req_No”与输入文本相同的行。

如果您没有实施搜索功能。完全删除Where子句。

答案 1 :(得分: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