从字符串“x”到“Integer”类型的转换无效

时间:2015-03-11 19:59:23

标签: asp.net vb.net linq entity-framework

尝试在asp.net下拉列表中创建默认行时出现以下错误:从字符串“x”转换为“整数”类型无效。

  • CmbSalesAgents是下拉控件。
  • DefaultSalesAgent是实体对象(具有值)
  • x是数值和字符串
  • 的串联

**

Dim DefaultSalesAgent = (From o In db.PayoutRegisters
                         Join s In db.SalesAgents On s.SalesAgentId Equals o.SalesAgentID
                         Where o.PayoutRegisterID = PayoutRegisterID
                         Select o.PayoutRegisterID, x = s.CSRName + " (" + o.PaidThruDate.ToString + ")").ToList




    If DefaultSalesAgent.Count > 0 Then
        CmbSalesAgents.Items.Insert(0, New ListItem(DefaultSalesAgent.Item("x").ToString, PayoutRegisterID))
    Else
        CmbSalesAgents.Items.Insert(0, New ListItem("Select Sales Agent Payout Register", 0))
    End If

2 个答案:

答案 0 :(得分:1)

由于DefaultSalesAgent是一个列表对象,那么你应该通过整数索引而不是字符串来访问它的项目:

DefaultSalesAgent.Item(integer_index)

答案 1 :(得分:0)

如果您特别需要根据字符串值插入行,则可以替换

DefaultSalesAgent.Item("x")

使用

DefaultSalesAgent.Item(DefaultSalesAgent.FindIndex(x => x.StartsWith("x")));

您也可以根据需要使用contains而不是startswith。请注意,这只是在您特别需要查找字符串时,因为它比访问列表中的索引要贵得多。