【问题标题】:unable to cast object of type 'system.int32' to type 'system.int32[] '无法将“system.int32”类型的对象转换为“system.int32[]”类型
【发布时间】:2013-04-24 09:45:18
【问题描述】:

我在第四行得到上述错误。我如何(假设我必须)将值转换为两边都具有相同的数据类型?

dsOrderList = objResult.ds
        For Each drow As DataRow In dsOrderList.Tables(0).Rows
            Dim objOrder As New Orders
            objOrder.OrderID = drow("OrderID")
            objOrder.CustomerID = drow("CustomerID")
            objOrder.EmployeeID = drow("EmployeeID")

【问题讨论】:

  • 属性 Orders.OrderID 是整数数组吗?
  • 很好,史蒂夫......可能是问题所在,尽管一些演员可能也不错。
  • 是的,它是一个数组,那么需要做什么?
  • 你想用这个数组实现什么?你想将值附加到数组中,替换数组中特定索引处的值吗?无论如何,看看关于编程或 VB.NET 的书籍或教程可能是一个好主意......

标签: vb.net type-conversion


【解决方案1】:

我认为你是将一个值串成整数数组,必须有一个数组或提供数组的元素

dsOrderList = objResult.ds
    For Each drow As DataRow In dsOrderList.Tables(0).Rows
        Dim objOrder As New Orders
        objOrder.OrderID(0) = drow("OrderID") '0 is Element of Order ID
        objOrder.CustomerID = drow("CustomerID")
        objOrder.EmployeeID = drow("EmployeeID")

或

dsOrderList = objResult.ds
    For Each drow As DataRow In dsOrderList.Tables(0).Rows
        Dim objOrder As New Orders
        objOrder.OrderID =  {drow("OrderID")}
        objOrder.CustomerID = drow("CustomerID")
        objOrder.EmployeeID = drow("EmployeeID")

更新

如果 objOrder.OrderID 的元素什么都不是,则使用

objOrder.OrderID = new int() {drow{"OrderID"})

【讨论】:

    【解决方案2】:

    您需要将 dataRow 中的值转换为 int、string 等值,然后再将其分配给另一个变量,其类型可能是 int

    【讨论】:

    • 喜欢进行类型转换...codeproject.com/Articles/5044/…,但请参阅史蒂夫对您问题的评论,这可能是您问题的原因...
    • 它是一个数组..!(在多个值中)
    猜你喜欢
    • 1970-01-01
    • 2013-07-10
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多