2

我无法在文本框中输入值。每次售出门票时,我都会在文本框中输入总价,每次售出同一场音乐会的门票时,它会通过将自身添加到总价中而增加。它在第一次销售时起作用,但在那之后它就坏了。这是代码,提前致谢。

 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
4

2 回答 2

1

您的查询似乎没有名为“Total_Money”的列。您没有命名查询返回的单列。

于 2012-04-23T16:57:15.680 回答
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)
于 2013-04-08T19:09:05.977 回答