vbnet中如何利用For子句从数据库mysql中获取数据
我在vb.net上有一个代码,我想使用vb.net的循环从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”
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语法的主要目的之一。你能提供一些结果或屏幕截图吗?