vbnet中如何利用For子句从数据库mysql中获取数据

vbnet中如何利用For子句从数据库mysql中获取数据,mysql,vb.net,Mysql,Vb.net,我在vb.net上有一个代码,我想使用vb.net的循环从mysql数据库检索数据 我面临的问题似乎是重复循环工作不正常,获得的数据只重复第一个数据 有人能帮我吗 conn.Open() sqlConn1=“从transaksi中选择* data3=新的MySqlDataAdapter(sqlConn1,conn) 数据3.填充(ds3,“transaksi”) 暗凯特兰根作为弦 尺寸c4为String=String.Empty 对于c,作为整数=0到ds3.Tables(“transaksi”

我在vb.net上有一个代码,我想使用vb.net的循环从mysql数据库检索数据

我面临的问题似乎是重复循环工作不正常,获得的数据只重复第一个数据

有人能帮我吗

conn.Open()
sqlConn1=“从transaksi中选择*
data3=新的MySqlDataAdapter(sqlConn1,conn)
数据3.填充(ds3,“transaksi”)
暗凯特兰根作为弦
尺寸c4为String=String.Empty
对于c,作为整数=0到ds3.Tables(“transaksi”).Rows.Count-1
sqlConn2=“从transaksi中选择*
data32=新的MySqlDataAdapter(sqlConn2,conn)
数据32.填充(ds32,“transaksi”)
c4=ds32.表格(“transaksi”).行(c).项目(“idTransaksi”)
'对于d为整数=0到s-1
Dim nilaihasil为双人
将nilax设置为双精度
将变量a设置为双精度
双精度变量b
对于f,作为整数=0到5-1
sqlConn6=“从transaksidetail中选择*,其中idTransaksi=”&c4&“
data6=新的MySqlDataAdapter(sqlConn6,conn)
数据6.填充(ds6,“transaksidetail”)
var_a=ds6.表格(“transaksidetail”).行(f).项目(“NilaitTransakSidetail”)
sqlConn7=“从集群中选择nilai,其中idKriteria=”&ds6.Tables(“transaksidetail”).Rows(f.Item(“idKriteria”)&kode=“C0”
data7=新的MySqlDataAdapter(sqlConn7,conn)
数据7.填充(ds7,“集群”)
var_b=ds7.表(“集群”).行(f).项(“nilai”)
'MessageBox.Show(变量a和变量b)
nilaix+=((变量a^2)-(变量b^2))
下一个
nilaihasil=Math.Sqrt(nilaix)
perintah.CommandType=CommandType.Text
perintah.CommandText=“插入tempcluster(idTemp、idTransaksi、nilai、cluster)值(“”、“&c4&”、“&nilaihasil&”、'C0')”
连接=连接
perintah.ExecuteNonQuery()
下一个c
康涅狄格州关闭

我认为您的问题可能是在循环中重新填充DataTable transaksi。评论和解释一致

Private Sub OPCode2()
    Dim conn As New MySqlConnection("Your Connection String")
    conn.Open()
    Dim sqlConn1 = "select * from transaksi"
    Dim data3 = New MySqlDataAdapter(sqlConn1, conn)
    Dim ds3 As New DataSet
    data3.Fill(ds3, "transaksi")

    Dim keterangan As String = ""

    Dim c4 As String = String.Empty
    For c As Integer = 0 To ds3.Tables("transaksi").Rows.Count - 1
        'It looks like you are doing the same thing twice
        'Anyway, you don't want to do it over and over in the loop
        'sqlConn2 = "select * from transaksi"
        'data32 = New MySqlDataAdapter(sqlConn2, conn)
        'data32.Fill(ds32, "transaksi")

        c4 = ds3.Tables("transaksi").Rows(c).Item("idTransaksi").ToString


        Dim nilaihasil As Double
        Dim nilaix As Double
        Dim var_a As Double
        Dim var_b As Double

        Dim sqlConn6 = "select * from transaksidetail WHERE idTransaksi = '" & c4 & "'"
        Dim data6 = New MySqlDataAdapter(sqlConn6, conn)
        Dim ds6 As New DataSet
        data6.Fill(ds6, "transaksidetail")

        'This looks a little silly, how about To 4
        For f As Integer = 0 To 5 - 1
            'Move the following out of the loop
            'No sense doing the same thing 5 times
            'sqlConn6 = "select * from transaksidetail WHERE idTransaksi = '" & c4 & "'"
            'data6 = New MySqlDataAdapter(sqlConn6, conn)
            'data6.Fill(ds6, "transaksidetail")

            var_a = CDbl(ds6.Tables("transaksidetail").Rows(f).Item("nilaiTransaksidetail"))

            Dim sqlConn7 = "select nilai from cluster WHERE idKriteria = '" & ds6.Tables("transaksidetail").Rows(f).Item("idKriteria").ToString & "' AND kode = 'C0'"
            Dim data7 = New MySqlDataAdapter(sqlConn7, conn)
            Dim ds7 As New DataSet
            data7.Fill(ds7, "cluster")
            var_b = CDbl(ds7.Tables("cluster").Rows(f).Item("nilai"))

            'MessageBox.Show(var_a & var_b)
            nilaix += ((var_a ^ 2) - (var_b ^ 2))

        Next

        nilaihasil = Math.Sqrt(nilaix)
        Dim perintah As New MySqlCommand
        perintah.CommandType = CommandType.Text
        perintah.CommandText = "INSERT INTO tempcluster (idTemp,idTransaksi,nilai,cluster) VALUES ('','" & c4 & "','" & nilaihasil & "','C0')"
        perintah.Connection = conn
        perintah.ExecuteNonQuery()

    Next c
    conn.Close()
End Sub

你的解释不充分。不要只是告诉我们你想使用循环。准确解释使用该循环应该实现什么。如果要填充
数据表,然后对每一行执行一些操作,那么应该在
集合上对每一行使用
。正如你所看到的,代码基本上符合所要做的事情的描述,这是VB语法的主要目的之一。你能提供一些结果或屏幕截图吗?