Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取MYSQL结果并对其进行迭代,并向数据库添加新值_Mysql_Vb.net_Function - Fatal编程技术网

获取MYSQL结果并对其进行迭代,并向数据库添加新值

获取MYSQL结果并对其进行迭代,并向数据库添加新值,mysql,vb.net,function,Mysql,Vb.net,Function,我还在学习vb.net,我需要创建函数从mysql获取结果,乘以值,然后将这些值添加到数据库中 这就是我到目前为止所做的: Public Sub updateusers() strSQL = "SELECT * FROM users WHERE status='1'" CONNECTION.Open() cmd = New MySqlCommand(strSQL, CONNECTION) dr = cmd.ExecuteReader() Userpanel

我还在学习vb.net,我需要创建函数从mysql获取结果,乘以值,然后将这些值添加到数据库中

这就是我到目前为止所做的:

Public Sub updateusers()
    strSQL = "SELECT * FROM users WHERE status='1'"
    CONNECTION.Open()
    cmd = New MySqlCommand(strSQL, CONNECTION)
    dr = cmd.ExecuteReader()
    Userpanellistview.Items.Clear()

    Do While dr.Read()
        valx = (dr.Item("userid").ToString())
        valy = (dr.Item("value").ToString())
        valz = (dr.Item("value").ToString) * (dr.Item("plusvalue").ToString())



        Dim list As ListViewItem = Userpanellistview.Items.Add(a)
        list.SubItems.Add(valx)
        list.SubItems.Add(valy)
        list.SubItems.Add(valz)
    Loop
    dr.Close()
    cmd.Dispose()
    CONNECTION.Close()
End Sub
我需要使用以下命令更新“用户”表的值:

strSQL = "UPDATE users SET status=2, calcammount='" & valz & "' WHERE userid='" & valx & "'"

现在,我不知道从哪里开始,我应该创建另一个函数并从这个函数updateusers传递值,还是我可以在这个函数中添加代码来更新从数据库中提取的每一行?

如果要保存数据,请不要使用数据读取器。在SQL中执行所有操作并调用ExecuteOnQuery以执行适当的UPDATE语句,或者使用数据适配器。在后一种情况下,调用Fill以使用所需数据填充数据表,循环该数据表的行并进行适当的修改,然后在同一适配器上调用Update以将更改保存回数据库。如果要修改现有行,至少需要填充数据适配器的UpdateCommand,这可以手动或使用命令生成器完成。

首先,谷歌搜索“参数化查询”。你的问题不清楚。您编写的查询是正确的,您需要循环列表并为每个用户运行更新查询。这里有一个简单的问题:我可以在此函数中使用另一个查询来更新表吗?当然,正如jmchilinney所说,最好的方法是使用数据表,用您的查询填充它并将其发送回数据库(ADO.NET)。如果仍然需要该列表,要向用户显示一些数据,请使用datatable填充它。不管怎样,我的建议是为每个操作创建一个函数,这有助于保持代码整洁。我向谷歌更新了“参数化查询”的提示