我在文本框中输入值时遇到问题。每次售票时我都会将总价格放在一个文本框中,每次为同一个音乐会出售一张票,它会通过将其自身加到总价中来增加。它在第一次销售时起作用,但之后就会崩溃。这是代码,并提前感谢。
Private Function DisplayMoneyTaken() As Integer
Dim totalMoney As Integer
'open the database connection
strSQL = "SELECT MAX(Total_Money) FROM Sales WHERE Concert_Id =" + Mid(cboVenue.Text, 1, 4)
conn.Open()
cmd.Connection = conn
cmd.CommandText = strSQL
cmd.CommandType = CommandType.Text
dr = cmd.ExecuteReader()
'read the record returned
dr.Read()
If IsDBNull(dr.Item(0)) Then
totalMoney = txtPrice.Text
Else
DisplayMoneyTaken = dr.Item("Total_Money") + Val(txtPrice.Text)
End If
'close the database
conn.Close()
Return totalMoney
End Function
答案 0 :(得分:1)
您的查询似乎没有名为“Total_Money”的列。您没有命名查询返回的单个列。
答案 1 :(得分:0)
使用聚合函数时,还需要为该列指定别名。 例如
strSQL = "SELECT MAX(Total_Money) as CaChing FROM Sales WHERE Concert_Id =" + Mid(cboVenue.Text, 1, 4)
如果您没有分配别名,服务器有时会分配一个别名。但你必须知道或猜测它会是什么。选择一个有意义的东西要好得多。
您还可以使用数字索引项目,这是您在检查NULL时所执行的操作。 访问该值时可能会使用相同的语法。
DisplayMoneyTaken = dr.Item(0) + Val(txtPrice.Text)