我遇到的问题是我从数据库中选择要在网格中显示的行:结果只有一行显示在网格上,其余的没有显示。
这是我的代码:
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()
答案 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