VB
Microsoft 开发的一种面向对象的编程语言,其在 .NET Framework 上实现。 以前称为 Visual Basic .NET。
84 个问题
你好
我从excel文件导入了数据。该文件不包含指定的列,但可变,最多有 5 列。但它可以是 3 列或 2 到 5 列。这五列都有名称,但列的位置和重音会根据文件而变化。我想要的是将数据从 DataTable 传输到数据库。传输是根据列名和所需值(如果列名在其中)到数据库的比较。如果列名不存在,则采用“-”符号并将其保存在数据库中
块引用
Dim parta, partb, partc, partd As String
Dim i As Integer = 0
For i = 0 To dt2.Rows.Count - 1
If dt2 Is Nothing Then
Exit For : Exit Sub
End If
If (dt2.Rows(0)("cola").ToString = "cola") Then
parta = dt2.Rows(i)("cola")
End If
If (dt2.Rows(0)("colb").ToString = "colb") Then
partb = dt2.Rows(i)("colb")
End If
If (dt2.Rows(0)("colc").ToString = "colc") Then
partc = dt2.Rows(i)("colc")
End If
If (dt2.Rows(0)("cold").ToString = "cold") Then
partd = dt2.Rows(i)("cold")
End If
Dim com As New OleDbCommand("INSERT INTO EXPORT_TB(EXPORT_a,EXPORT_b,EXPORT_c,EXPORT_d) VALUES (@EXPORT_a,@EXPORT_b,@EXPORT_c,@EXPORT_d)", con)
com.Parameters.AddWithValue("@EXPORT_a", OleDbType.VarChar).Value = parta
com.Parameters.AddWithValue("@EXPORT_b", OleDbType.VarChar).Value = partb
com.Parameters.AddWithValue("@EXPORT_c", OleDbType.VarChar).Value = partc
com.Parameters.AddWithValue("@EXPORT_d", OleDbType.VarChar).Value = partd
con.Open()
com.ExecuteNonQuery()
con.Close()
Next
Note:此问题总结整理于:Fill in the database from datatable
首先,您需要创建一个包含五列的模板表。例如:
Dim dt As DataTable = New DataTable
dt.Columns.Add("cola")
dt.Columns.Add("colb")
dt.Columns.Add("colc")
dt.Columns.Add("cold")
dt.Columns.Add("cole")
然后将您的“dt2”合并到表中。
dt.Merge(dt2)
最后,您可以参考以下代码将数据表保存到数据库中。
Dim cmd As New OleDbCommand("INSERT INTO EXPORT_TB(EXPORT_a,EXPORT_b,EXPORT_c,EXPORT_d,EXPORT_e) VALUES (@EXPORT_a,@EXPORT_b,@EXPORT_c,@EXPORT_d,@EXPORT_e)", con)
con.Open()
For Each row As DataRow In dt.Rows
cmd.Parameters.Clear()
cmd.Parameters.AddWithValue("EXPORT_a", IIf(row("cola").ToString() = "", "-", row("cola").ToString()))
cmd.Parameters.AddWithValue("EXPORT_b", IIf(row("colb").ToString() = "", "-", row("colb").ToString()))
cmd.Parameters.AddWithValue("EXPORT_c", IIf(row("colc").ToString() = "", "-", row("colc").ToString()))
cmd.Parameters.AddWithValue("EXPORT_d", IIf(row("cold").ToString() = "", "-", row("cold").ToString()))
cmd.Parameters.AddWithValue("EXPORT_e", IIf(row("cole").ToString() = "", "-", row("cole").ToString()))
cmd.ExecuteNonQuery()
Next
con.Close()
如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。
注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。