Opdatering af flere rows i MySQL
Hej,Jeg har lavet en lille kode som opdatere flere rows i en MySQL database. Mit problem er at jeg måtte åbne databasen 2 gange for at hente id'et og nogle timer først før jeg kunne opdatere det, dvs en SELECT og en UPDATE sql query.
Mit spørgsmål er så om man kan gøre det kun ved at bruge en connection eller bare lave min kode bedre?
Her er min kode:
Protected Sub btnOk_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim intFritimer As Integer = 0
Dim intTimer As Integer = System.Convert.ToInt32(txtTimer.Text)
Dim intMinutter As Integer = System.Convert.ToInt32(txtMinutter.Text)
Dim DBconSel As New MySqlConnection(System.Configuration.ConfigurationManager.AppSettings("DBcon"))
Dim DBsqlSel As String = "SELECT Id, Fritimer FROM SKP WHERE Slettet = False"
Dim DBcmdSel As New MySqlCommand(DBsqlSel, DBconSel)
Dim DBconIns As New MySqlConnection(System.Configuration.ConfigurationManager.AppSettings("DBcon"))
Dim DBsqlIns As String = "UPDATE SKP SET Fritimer = ?FRITIMER WHERE Id = ?ID"
Dim DBcmdIns As New MySqlCommand(DBsqlIns, DBconIns)
DBcmdIns.Parameters.Add(New MySqlParameter("?ID", MySqlDbType.Int32))
DBcmdIns.Parameters.Add(New MySqlParameter("?FRITIMER", MySqlDbType.Int32))
DBconSel.Open()
DBconIns.Open()
Dim DBreadSel As MySqlDataReader = DBcmdSel.ExecuteReader()
While DBreadSel.Read
If Request.QueryString("i" & DBreadSel.Item("Id")) = "1" Then
If rblSymbol.SelectedValue = "1" Then
intFritimer = DBreadSel.Item("Fritimer") + ((intTimer * 60) + intMinutter)
Else
intFritimer = DBreadSel.Item("Fritimer") - ((intTimer * 60) + intMinutter)
End If
DBcmdIns.Parameters("?ID").Value = DBreadSel.Item("Id")
DBcmdIns.Parameters("?FRITIMER").Value = intFritimer
DBcmdIns.ExecuteNonQuery()
End If
End While
DBreadSel.Close()
DBconIns.Close()
DBconSel.Close()
Response.Redirect("Default.aspx")
End Sub
