2016-09-19 45 views
0

我很奇怪,为什么我的代码不是它的运行之前,现在的工作,但现在只是没有表现出像退出子..任何想法为什么我的DataGrid没有从DataReader加载数据?

Try 
    Dim z As Integer = 0 

    Dim dr3 As MySqlDataReader 

    Dim qryPO3 As New MySqlCommand("SELECT product_ID, Quantity, Unit_Cost FROM PO_Details WHERE PO_ID = " & PO_ID & "", conn) 

    dr3 = qryPO3.ExecuteReader() 

    While dr3.Read() 
     dtItem.Rows.Add() 

     dtItem.Item(0, z).Value = dr3("Product_ID") 
     dtItem.Item(5, z).Value = dr3("Quantity") 
     dtItem.Item(7, z).Value = dr3("Unit_Cost") 
     dtItem.Item(8, z).Value = dr3("Unit_Cost") * dr3("Quantity") 

     z = z + 1 

    End While 

    dr3.Close() 
    dr3.Dispose() 
Catch ex As Exception 
    MsgBox(ex).ToString() 
End Try 

请我坚持这个东西

感谢和赞赏。

+1

一)使用SQL参数而不是将少量的字符串粘合在一起b)检查是否有匹配的数据c)填充数据表并将其绑定起来比将未打字值插入每个单元格更容易。 – Plutonix

+0

一旦执行查询,您应该始终关闭并处理您的数据连接。使用调试器浏览你的代码,看看发生了什么。尽量避免仅列索引号。您可能会在将来的更新中插入新列,然后您将不得不重新调整所有这些索引。 – LarsTech

回答

2

我很确定DataGrid.Item()(row, column)它看起来像你在做(column, row)。所以在你While循环试试这个:

dtItem.Item(z, 0).Value = dr3("Product_ID") 
    dtItem.Item(z, 5).Value = dr3("Quantity") 
    dtItem.Item(z, 7).Value = dr3("Unit_Cost") 
    dtItem.Item(z, 8).Value = dr3("Unit_Cost") * dr3("Quantity") 
0

谢谢你们......我失去了我是编码甚至rowadded后,我在的所述e删除代码的代码是完全执行

相关问题