SQL无法将类型为'system.string'的对象强制转换为在vb.net中键入'system.iformatprovider'错误

时间:2014-09-16 16:52:36

标签: sql vb.net

我正在尝试在我的VB应用程序中运行此查询但收到错误说:

unable to cast object of type 'system.string' to type 'system.iformatprovider' 

SQL = "insert into billing_pdf_archive (reseller_sequence, invoice_number, pdf, worddoc, csv_cdr_file, csv_services_file, sub_total, vat_amount, grand_total, invoice_type, directdebit) values ('" + reseller.ToString + "','" + invoice_number.ToString + "', '" + Replace(reseller_company_name + "-" + invoice_number + ".pdf", " ", "_") + "', '" + Replace(reseller_company_name + "-" + invoice_number + ".doc", " ", "_") + "', '" + Replace(reseller_company_name + "-" + invoice_number.ToString + "_CDR.xlsx", " ", "_") + "', '" + Replace(reseller_company_name + "-" + invoice_number.ToString + "_Services.xlsx", " ", "_") + "', " + total.ToString("F2") + ", " + vat_amount.ToString("F2") + ", " + grand_total.ToString("F2") + ", 'Month End Reseller', '" + customer_direct_debit + "')"
            conn3.ConnectionString = "server=" + global_variables.web_server_ip + "; user id=" + global_variables.web_server_username + "; password=" + global_variables.web_server_password + "; database=" + global_variables.web_server_database + "; "
            conn3.Open()
            myCommand3.Connection = conn3
            myCommand3.CommandText = SQL
            myCommand3.ExecuteNonQuery()
            conn3.Close()

1 个答案:

答案 0 :(得分:1)

这不是一个完整的答案,但我会将其作为答案发布,以便我可以发布格式化的代码。如果您按照评论中的建议进行操作并编写干净,可读的代码,那么问题在哪里以及如何解决它将变得很明显。如果你有一条线可以做很多不同的事情,那么找出那条线路上的问题几乎是不可能的。您应该为您的SQL代码,值的参数和连接字符串构建器使用XML文字,例如

Dim sql = <sql>
              INSERT INTO MyTable
              (
                  Column1,
                  Column2
              )
              VALUES
              (
                  @Column1,
                  @Column2
              )
          </sql>

command.CommandText = sql.Value
command.Parameters.AddWithValue("@Column1", value1)
command.Parameters.AddWithValue("@Column2", value2)

Dim builder As New SqlConnectionStringBuilder

builder.DataSource = server
builder.InitialCatalog = database
connection.ConnectionString = builder.ConnectionString

现在,您已经能够确切地看到代码的哪一部分导致了问题,如果您仍然无法自行解决,则可以指出问题出在哪里,而不是期待我们读那条狗的早餐。