MySQL + VB.NET - 在一个循环中逐个选择表中的所有MySQL行

时间:2011-11-02 22:20:51

标签: mysql vb.net

我正在为Employees Management编写一个程序,我需要为每个人自动生成一个Payroll,然后计算一些东西并将其保存到另一个表中。

我知道如何计算和保存。我只需要获取Employees表中所有行的所有ID列,并逐个选择每个Employee ID,以便自动计算每个工资单。

我很感激你的帮助。

2 个答案:

答案 0 :(得分:1)

我会为它创建一个名为myEmployee的对象。 然后获取整个表并将其放入列表中。 确保该对象具有所需的所有属性,因此在这种情况下,这将是计算所需的所有colls。 你会得到

Dim myList as List(Of myEmployee) = *function that returns you the table*

完成后,您可以循环使用。

For Each result as myEmployee in myList
"Execute functions for calculating and saving it to the other table"
Next

通过这种方式,您可以将所有结果放在列表中,并且可以轻松地逐个遍历所有这些结果。 这段代码的执行可能不够好,但只要你能够按照我的方式看到它的基本思想,你就会看到我要去的地方:)

希望这可以提供任何帮助

答案 1 :(得分:1)

如果您需要根据employeeID查找的信息位于另一个表中,您可能希望使用内部联接来一次选择所需的所有SQL数据。像这样:

SELECT tblEmployee.EmployeeID, PayRate FROM tblEmployee INNER JOIN tblPayRates ON tblEmployee.EmployeeID= tblPayRates.EmployeeID

在选择中,确保为两个表中相同的任何字段添加表名。然后,您可以列出包含您收集的所有数据的项目列表,或者以您需要的任何格式计算和存储该信息。

如果你真的只想从单个表中看到这样的ID:

SELECT EmployeeID FROM tblEmployee

生成查询和获取结果的代码如下所示:

    Dim cn As New MySqlConnection(ConnectionString)
    Dim cmd As New MySqlCommand(Query, cn)
    Dim reader As MySqlDataReader = cmd.ExecuteReader
    Dim IdList as new List(Of Integer)

    Do While reader.Read
        IdList.add(reader.GetInt32(0))
    Loop

    reader.Close()
    cmd.Dispose()
    cn.Close()

我使用了一个Integer列表来保存结果,因为我不确定你的ID是什么类型。

如果你在select中有多个字段,你可以将它添加到循环中,如果需要改变你得到的类型然后递增索引(例如reader.GetString(1))

我不确定所有这一部分你不确定如何继续...所以我希望这是正确的方向。