我正在尝试在我的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()
答案 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
现在,您已经能够确切地看到代码的哪一部分导致了问题,如果您仍然无法自行解决,则可以指出问题出在哪里,而不是期待我们读那条狗的早餐。