Mise à jour multiple dans MySQL via une requête avec plusieurs conditions dans VB.net
-
21-12-2019 - |
Question
J'essaie de créer une requête en utilisant la condition de cas avec quelques conditions supplémentaires pour éviter de la boucler.Je ne sais pas où est le problème.
Codez ici :
Using MysqlConn As New MySqlConnection(connString)
Using MyCommand As New MySqlCommand()
With MyCommand
.Connection = MysqlConn
.CommandText = "update beardata.results set team = case rownumber" & _
"when 1 then @par1" & _
"when 2 then @par1" & _
"when 3 then @par1" & _
"when 4 then @par1" & _
"when 5 then @par1" & _
"end" & _
"where bnumber = @bnum and hraciden = @pd and league = @lm and rownumber in (1,2,3,4,5)"
.CommandType = CommandType.Text
.Parameters.AddWithValue("@par1", Team1Box.SelectedItem.ToString)
.Parameters.AddWithValue("@bnum", currentButton.Tag)
.Parameters.AddWithValue("@pd", Convert.ToInt16(playDayBox.SelectedItem))
.Parameters.AddWithValue("@lm", LeagueBox.SelectedItem.ToString)
End With
Try
MysqlConn.Open()
MyCommand.ExecuteNonQuery()
MysqlConn.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
MysqlConn.Dispose()
End Try
End Using
End Using
Pouvez-vous m'indiquer la bonne direction concernant le texte de commande ?Ou suggérer une autre solution à ce problème ?Merci d'avance!
La solution
Avez-vous réellement regardé le contenu de ce CommandText
après l'exécution de ce code ?Je parie que non.Pourquoi n’est-ce pas la première chose que vous avez faite ?Regardez le SQL que vous exécutez, pas le code qui construit ce SQL.Ce n'est pas ce que vous pensez.Je vous suggère d'utiliser un littéral XML pour créer ce code SQL.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow