Mysql 如何在Vb.net中使用for-next将数据插入Ms.Access

Mysql 如何在Vb.net中使用for-next将数据插入Ms.Access,mysql,vb.net,ms-access,Mysql,Vb.net,Ms Access,我从一个MySQL数据库获取数据,创建了一个addition Access数据库,它基于MySQL数据库的字段名。我想在连接关闭之前直接将所有记录字段保存到新的Access数据库中。问题是只有1条记录被存储到我的Access数据库中 这是我的代码: tbl.Name = "Leger" cat.Tables.Append(tbl) tbl.Columns.Append("idsiswa", ADOX.DataTypeEnum.adInteger) tbl.Columns.Append("nama

我从一个MySQL数据库获取数据,创建了一个addition Access数据库,它基于MySQL数据库的字段名。我想在连接关闭之前直接将所有记录字段保存到新的Access数据库中。问题是只有1条记录被存储到我的Access数据库中

这是我的代码:

tbl.Name = "Leger"
cat.Tables.Append(tbl)
tbl.Columns.Append("idsiswa", ADOX.DataTypeEnum.adInteger)
tbl.Columns.Append("nama", ADOX.DataTypeEnum.adVarWChar, 40)
tbl.Columns.Append("nis", ADOX.DataTypeEnum.adVarWChar, 15)
tbl.Columns.Append("idkelas", ADOX.DataTypeEnum.adInteger)
tbl.Columns.Append("tahunpelajaran", ADOX.DataTypeEnum.adVarWChar, 9)
tbl.Columns.Append("semester", ADOX.DataTypeEnum.adInteger)
While RD_pelajaran.Read
    tbl.Columns.Append(RD_pelajaran.Item("kodepelajaran") & "_14_P", ADOX.DataTypeEnum.adSingle)
    tbl.Columns.Append(RD_pelajaran.Item("kodepelajaran") & "_H_P", ADOX.DataTypeEnum.adVarWChar, 3)
    tbl.Columns.Append(RD_pelajaran.Item("kodepelajaran") & "_14_K", ADOX.DataTypeEnum.adSingle)
    tbl.Columns.Append(RD_pelajaran.Item("kodepelajaran") & "_H_K", ADOX.DataTypeEnum.adVarWChar, 3)
    Dim koneksi2 As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PathDb)
    koneksi2.Open()
    For xloop = 0 To RD_pelajaran.FieldCount - 1
        Dim vIdsiswa As Integer = RD_pelajaran.Item("idsiswa")
        Dim vNama As String = RD_pelajaran.Item("nama")
        Dim vnis As String = RD_pelajaran.Item("nis")
        Dim vidkelas1 As String = RD_pelajaran.Item("idkelas")
        Dim vtahunpelajaran As String = RD_pelajaran.Item("tahunpelajaran")
        Dim vsemester1 As String = RD_pelajaran.Item("semester")
        Dim Va001ap As Single = RD_pelajaran.Item("nilai_semester_p")
        Dim va001hp As String = RD_pelajaran.Item("nilaihuruf_p")
        Dim Va001ak As Single = RD_pelajaran.Item("nilai_semester_k")
        Dim va001hk As String = RD_pelajaran.Item("nilaihuruf_k")
        Dim InsertData As String = "INSERT INTO Leger(idsiswa,nama,nis,idkelas,tahunpelajaran,semester,A001_14_P,A001_H_P,A001_14_k,A001_H_K) VALUES ('" & vIdsiswa & "','" & vNama & "','" & vnis & "','" & vidkelas1 & "','" & vtahunpelajaran & "','" & vsemester1 & "','" & Va001ap & "','" & va001hp & "','" & Va001ak & "','" & va001hk & "')"
        Dim cmd1 As OleDbCommand = New OleDbCommand(InsertData, koneksi2)
        cmd1.ExecuteNonQuery()
    Next
    koneksi2.Close()
End While

问题在哪里?我如何解决它?

xloop
是迭代列而不是行;SQL参数将极大地简化代码,您应该使用
选项Strict On
我尝试'x=x+1 For xloop=0 To x-1',但它不适用于保存mysql数据库中的所有字段,而只保存一行。