Here's my code which gives error, the query returns value for the particular item.
Also in the database side the query return rows even I have put condition that if reader has rows then only assign it to a variable but still it throws an error eg.
dqty = sqlreader("qty")
Code:
Private Function checkquantity(ByVal code As String, ByVal quan As Integer) As Boolean
sqlcommand.CommandText = "select sum(qty) as qty from pos_stock_balance where item_code='" & code & "'"
sqlcommand.Connection = AppsCon
sqlreader = sqlcommand.ExecuteReader
If sqlreader.HasRows Then
dqty = sqlreader("qty")
sqlreader.Close()
Else
sqlreader.Close()
End If
If quan > dqty Then
Return False
Else
Return True
End If
End Function
Best Solution
It is because you are directly accessing the data without reading it, Try this,
Reference
Cleaned version of your code,
Although i cleaned your code, Your code is still vulnerable to sql injection. Try to use parameterised queries to avoid that