如何使用vb.net在mysql数据库中找到每个machine_id的最后一行?

时间:2011-06-10 13:54:54

标签: mysql vb.net

'    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的最后几行?感谢

    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

1 个答案:

答案 0 :(得分:2)

这样的事情应该有效

select last(time_schedule), last(product_quality) from yourTable group by machine_id

再想一想,如果mysql有last()函数(sql server),我就不是。如果mysql没有,您可以使用反向排序的first()或查看this post的答案