所以我对 PostgreSQL 和 VB.net 还很陌生(刚开始读)。我已经完成了研究,并且正在使用 Npgsql.dll 和 Mono.Security.Protocol.Tls.dll 作为连接数据库的参考。
|条码|项目|类型|已收到|已移除|on_hand|
|ien0001|thing1|type1| 1 | 2 | 3 |
|ien0002|thing2|type2| 4 | 5 | 6 |
|ien0003|thing1|type1| 7 | 8 | 9 |
我的表示例
现在我遇到的问题是,当我使用 myReader.GetString(0) 时,返回的值始终为 0。现在,如果我将此行硬编码到下面,我将获得数据库中的实际值。我不确定我是否在做一些愚蠢的事情,或者我是否在我的头上。任何建议都会很棒。我希望这个问题很清楚。如果不是,请告诉我,我会尝试改写。这也是我第一次发帖,所以如果我的格式很糟糕,请告诉我。
谢谢
另外,如果我不对条形码进行硬编码(没有双关语),则永远不会执行 if 语句。
我也忘了提到我想要完成的事情。我正在尝试使用称为代码的 VB 变量来查询数据库。然后根据查询的结果(最多只有一个结果)从列中提取一个值并将其保存到另一个变量中。
如果有其他方法可以做到这一点,请告诉我。谢谢
mySQLString = "SELECT On_Hand FROM total_inventory WHERE Barcode = 'ien0002' ;"
code = "'ien0001'" 'code is a string
myConnection.ConnectionString = "Server=###.###.###.###;Port=####;Database=inventory;User Id=inventory_user;Password=$$$$$$;"
myConnection.Open()
myCommand = New NpgsqlCommand(mySQLString, myConnection)
myCommand.ExecuteNonQuery()
myReader = myCommand.ExecuteReader
If myReader.Read() Then
CurrentQty = CInt(myReader.GetString(0))
MsgBox(":" & CurrentQty)
End If
myReader.Close()
MsgBox(CurrentQty)
myConnection.Close()