我通过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.ToString
或item.UnitPrice
,错误仍然相同。但我不知道为什么?谁能在这帮助我?
答案 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(几乎是整数)而不是字符串。