即使我检查一个单元格是否为空,我仍然会得到“转换异常无效”#39; VB.NET

时间:2016-03-02 18:16:29

标签: vb.net excel datagridview

我正在编写一个程序,将数据从Excel移动到DataGridView,然后将数据移动到数据库。我已经确定如果任何单元格为空,查询会执行某些操作并且我仍然无法获得无效的转换异常:来自' DBNull'字符串是不可能的'

你能帮帮我吗?

代码

For i As Integer = 0 To DataGridView1.Rows.Count - 1

        If IsDBNull(DataGridView1(0, i).Value) Then Exit For

        DBCon.Execute("INSERT INTO re_orden(linea, lybro_id, order_id, order_item_id, payments_date, cantidad, payments, product_id, titulo, peso, peso_total, listing, sku, price, " &
            "shipping, quantity_purchased, total_price, purchase_date, batch_id, buyer_email, buyer_name, recipient_name, ship_address_1, ship_address_2, ship_city, ship_state, ship_zip, ship_country," &
            "special_comments, upc, ship_method, status, location, estatus) VALUES ( " &
            " '" & linea & "', '" & IIf(IsDBNull(DataGridView1(0, i).Value), "N/A", DataGridView1(0, i).Value) & "', '" & IIf(IsDBNull(DataGridView1(1, i).Value), 0, DataGridView1(1, i).Value) & "', '" & IIf(IsDBNull(DataGridView1(2, i).Value), "N/A", DataGridView1(2, i).Value) & "', '" & IIf(IsDBNull(DataGridView1(3, i).Value), "0000-00-00", Format$(DataGridView1(3, i).Value, "yyyy-mm-dd HH:mm:ss")) & "', " &
            "'" & IIf(IsDBNull(DataGridView1(4, i).Value), 0, DataGridView1(4, i).Value) & "', '" & IIf(IsDBNull(DataGridView1(5, i).Value), "N/A", DataGridView1(5, i).Value) & "', '" & IIf(IsDBNull(DataGridView1(6, i).Value), "N/A", DataGridView1(6, i).Value) & "', '" & IIf(IsDBNull(DataGridView1(7, i).Value), "N/a", Replace(Replace(DataGridView1(7, i).Value, "'", "''"), ",", ".")) & "', '" & IIf(IsDBNull(DataGridView1(8, i).Value), 0, DataGridView1(8, i).Value) & "', " &
            "'0', '" & IIf(IsDBNull(DataGridView1(9, i).Value), "N/A", DataGridView1(9, i).Value) & "', '" & IIf(IsDBNull(DataGridView1(10, i).Value), "N/A", DataGridView1(10, i).Value) & "', " & IIf(IsDBNull(DataGridView1(11, i).Value), 0, DataGridView1(11, i).Value) & ", " & IIf(IsDBNull(DataGridView1(12, i).Value), 0, DataGridView1(12, i).Value) & ", '" & IIf(IsDBNull(DataGridView1(13, i).Value), 0, DataGridView1(13, i).Value) & "', " &
            "'" & IIf(IsDBNull(DataGridView1(14, i).Value), 0.00, DataGridView1(14, i).Value) & "', '" & IIf(IsDBNull(DataGridView1(15, i).Value), "N/A", Format$(DataGridView1(15, i).Value, "yyyy-mm-dd HH:mm:ss")) & "', '" & IIf(IsDBNull(DataGridView1(16, i).Value), "N/A", Replace(DataGridView1(16, i).Value, "#", "")) & "', '" & IIf(IsDBNull(DataGridView1(17, i).Value), "N/A", DataGridView1(17, i).Value) & "', " &
            "'" & IIf(IsDBNull(DataGridView1(18, i).Value), "N/A", Replace(DataGridView1(18, i).Value, "'", "''")) & "', '" & IIf(IsDBNull(DataGridView1(19, i).Value), "N/A", Replace(Replace(DataGridView1(19, i).Value, "'", "''"), "-", "")) & "', '" & IIf(IsDBNull(DataGridView1(20, i).Value), "N/A", Replace(Replace(DataGridView1(20, i).Value, "'", "''"), "#", "No.")) & "', '" & IIf(IsDBNull(DataGridView1(21, i).Value), "N/A", DataGridView1(21, i).Value) & "', '" & IIf(IsDBNull(DataGridView1(22, i).Value), "N/A", DataGridView1(22, i).Value) & "', " &
            "'" & IIf(IsDBNull(DataGridView1(23, i).Value), "N/A", DataGridView1(23, i).Value) & "', '" & IIf(IsDBNull(DataGridView1(24, i).Value), "N/A", DataGridView1(24, i).Value) & "', '" & IIf(IsDBNull(DataGridView1(25, i).Value), "N/A", DataGridView1(25, i).Value) & "', '" & Replace(DataGridView1(26, i).Value, "#", "") & "', '" & IIf(IsDBNull(DataGridView1(27, i).Value), "N/a", DataGridView1(27, i).Value) & "', " &
            "'" & IIf(IsDBNull(DataGridView1(28, i).Value), "N/A", DataGridView1(28, i).Value) & "', '" & IIf(IsDBNull(DataGridView1(29, i).Value), "N/A", DataGridView1(29, i).Value) & "', '" & IIf(IsDBNull(DataGridView1(30, i).Value), "N/A", DataGridView1(30, i).Value) & "', '1')")

        linea += 1

    Next

0 个答案:

没有答案