gpt4 book ai didi

sql - 即使数据存在于 vb.net 中的 SqlDataReader 中,也无法尝试读取数据

转载 作者:行者123 更新时间:2023-12-01 15:42:40 25 4
gpt4 key购买 nike

这是我给出错误的代码,查询返回特定项目的值。

同样在数据库端,查询返回行,即使我已经设置了条件,如果读取器有行,那么只将它分配给一个变量,但它仍然会抛出一个错误,例如。

dqty = sqlreader("qty")

代码:

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

最佳答案

是因为你是直接访问数据,没有读取数据,试试这个,

If sqlreader.HasRows Then
If sqlreader.read()
dqty = sqlreader("qty")
sqlreader.Close()
End If
Else
sqlreader.Close()
End If

Reference


您的代码的清理版本

Private Function checkquantity _
(ByVal code As String, ByVal quan As Integer) As Boolean

try

sqlcommand.CommandText = "select" _
& "sum(qty) as qty from pos_stock_balance where item_code='" & code & "'"

sqlcommand.Connection = AppsCon
sqlreader = sqlcommand.ExecuteReader

If sqlreader.read() Then
dqty = sqlreader("qty")
End If

If quan > dqty Then
Return False
Else
Return True
End If

Finally
sqlreader.Close()
End try

End Function

虽然我清理了你的代码,但你的代码仍然容易受到 sql injection 的攻击.尝试使用参数化查询来避免这种情况

关于sql - 即使数据存在于 vb.net 中的 SqlDataReader 中,也无法尝试读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19976409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com