如何在vb.net中查找mysql数据库中每个machine_id的最后一行?
问题描述:
' machine_id time_schedule product_quantity
' 1 100
' 1 200
' 1 100 << find this value(100)
' 2 05:00:00
' 2 10:00:00
' 2 15:00:00 << find this value(15:00:00)
' 3 100
' 3 300 << find this value(300)
' 4 200
' 4 100
' 4 50 << find this value(50)
如何在vb.net中查找mysql数据库中每个machine_id的最后一行?由于如何在vb.net中查找mysql数据库中每个machine_id的最后一行?
Private Sub btnAddSchedule_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddSchedule.Click
Try
Dim ts As TimeSpan = TimeSpan.Parse(Me.dtpSchedule.Text
' PROBLEM IN HERE ???
Dim rwFound As DataRow = MyDataset.Tables("totalizer_setting").Rows.Find(???)
If IsNothing(rwFound) Then
Dim rw As DataRow = MyDataset.Tables("totalizer_setting").NewRow
rw("machine_id") = Me.txtMachineID.Text
rw("time_schedule") = ts
rw("product_quantity") = DBNull.Value
MyDataset.Tables("totalizer_setting").Rows.Add(rw)
Dim sql As String = String.Format("INSERT INTO {0}.totalizer_setting (machine_id, time_schedule, product_quantity) VALUES ({1});", varSchema, "@machine_id, @time_schedule, @product_quantity")
Dim cmd As New MySqlCommand(sql, objCon)
cmd.Parameters.AddWithValue("@machine_id", Me.txtMachineID.Text)
cmd.Parameters.AddWithValue("@time_schedule", ts)
cmd.Parameters.AddWithValue("@product_quantity", DBNull.Value)
MyDataAdapter.InsertCommand = cmd
MyDataAdapter.Update(MyDataset, "totalizer_setting")
cmd.Dispose()
End If
Catch ex As MySqlException
MessageBox.Show("Error occurred in btnAddSchedule_Click Function" & vbCrLf & ex.Number & " – " & ex.Message)
End Try
End Sub
答
像这样的东西应该工作
select last(time_schedule), last(product_quality) from yourTable group by machine_id
退一步讲,我不是当MySQL last()
功能(SQL Server会)。如果mysql没有它,你可以使用first()
以相反的顺序或从this post
看到答案请参阅http://stackoverflow.com/questions/1379565/mysql-first-and-last-record分组记录聚合函数,以获得更高效的解决方案 – eyaler 2012-06-25 12:49:01