2011-11-02 35 views
1

我在爲員工管理編寫一個程序,我需要爲每個人自動生成一個工資單,然後計算一些內容並保存到另一張桌子。MySQL + VB.NET - 在一個循環中逐個選擇所有MySQL行

我知道如何計算和保存。我只需要在我的Employees表中獲取所有行的所有ID列,然後逐個選擇每個Employee ID以便自動計算每個工資單。

我很感謝您的幫助。

回答

1

如果您需要根據employeeID查找的信息位於另一個表中,那麼您可能希望使用Inner Join來一次性選擇所需的所有SQL數據。類似這樣的:

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

在select中,請確保爲兩個表中相同的任何字段添加表名。然後,您可以製作包含您收集的所有數據的項目列表,或者以您需要的任何格式計算和存儲該信息。

如果你真的只從單一的表是這樣想的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是什麼類型。

如果你在選擇有不止一個領域,你會添加到循環,必要時進行更改你所得到的類型,然後遞增索引(reader.GetString(1)例如)

我我不知道你們不知道該怎麼處理這部分,所以我希望這是正確的方向。

+0

試過For Each和While,都工作得像一個魅力!將保持與該方法。謝謝!:) –

+0

很高興它的工作! – Jay

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 

你有一個清單所有結果通過這種方式,你可以很容易地通過所有這些一個接一個的循環。 這段代碼的執行可能不夠好,但只要你能看到這個基本想法,就可以看到我將要去的地方:)

希望這可以是任何幫助

+0

在那裏得到了我的學分:( –

相關問題