以msgbox抛出转换错误显示整数

时间:2014-05-15 08:12:45

标签: vb.net messagebox

我通过EF教程工作。现在有一个清单:

Using context As New northwindEntities
            Dim query = From prod In context.Products
                        Where prod.UnitPrice = context.Products.Max(Function(x) x.UnitPrice)
                        Select prod.ProductName, prod.UnitPrice
            For Each item In query

                'works fine
                Console.WriteLine("{0}, {1}", item.ProductName, item.UnitPrice)
                'Not working error see below:
                MsgBox(item.ProductName, " ", item.UnitPrice.ToString)

            Next
        End Using

我收到错误:Conversion from string to type 'Integer' is not valid. Doesent问题,如果我写item.UnitPrice.ToStringitem.UnitPrice,错误仍然相同。但我不知道为什么?谁能在这帮助我?

2 个答案:

答案 0 :(得分:1)

您正在使用MsgBox功能错误。

查看它接受的参数:

Public Function MsgBox( _
   ByVal Prompt As Object, _
   Optional ByVal Buttons As MsgBoxStyle = MsgBoxStyle.OKOnly, _
   Optional ByVal Title As Object = Nothing _
) As MsgBoxResult

当您致电MsgBox(item.ProductName, " ", item.UnitPrice.ToString)时,您为" "参数传递Buttons,该参数应为MsgBoxStyle类型(或至少为基础类型:Integer ,如果您使用MsgBoxStyle),VB.Net将隐式转换为Option Strict Off


你可能正在寻找类似的东西:

MsgBox(String.Format("{0} {1}", item.ProductName, item.UnitPrice))

MsgBox(item.ProductName, MsgBoxStyle.OKOnly, item.UnitPrice)

答案 1 :(得分:0)

http://msdn.microsoft.com/en-us/library/139z2azd%28v=vs.90%29.aspx MsgBox函数的第二个参数采用Enum(几乎是整数)而不是字符串。