Olá pessoal, estou fazendo um pequeno jogo manager, mas estou com um problema na classificação do campeonato, quando eu coloco o seguinte código no MySQL workbench ele roda normalmente:
SELECT CASE WHEN @prev_value = pontuacao THEN @rank_count WHEN @prev_value := pontuacao THEN @rank_count := @rank_count + 1 END AS Posição ,times.nome, classificacao.* from classificacao inner join times on times.idTime = classificacao.idTime where idManager = 2 ORDER BY pontuacao desc;
mas quando eu coloco esse código desta maneira no C#:
try{ dtb.Clear(); MySqlCommand cmd = new MySqlCommand( "SET @prev_value = NULL; " + " SET @rank_count = 0; " + " SELECT CASE WHEN @prev_value = pontuacao THEN @rank_count" + " WHEN @prev_value := pontuacao THEN @rank_count := @rank_count + 1" + " END AS Posição, times.nome, classificacao.* from classificacao " + " inner join times on times.idTime = classificacao.idTime where idManager= '" + cManager.IdManager + "' ORDER BY pontuacao desc;", this.con); this.con.Open(); adp.SelectCommand = cmd; adp.Fill(this.dtb); }
E ele me retorna o seguinte erro:
{"Fatal error encountered during command execution."} System.Exception {MySql.Data.MySqlClient.MySqlException}
Minha tabela classificacao esta desta forma:
CREATE TABLE IF NOT EXISTS `ManageMyTeam`.`classificacao` ( `idClassificacao` INT NOT NULL AUTO_INCREMENT, `idTime` INT NOT NULL, `idManager` INT NOT NULL, `pontuacao` INT NOT NULL, `golsPro` INT NULL, `golsContra` INT NULL, PRIMARY KEY (`idClassificacao`), INDEX `idTime3_idx` (`idTime` ASC), INDEX `idManager1_idx` (`idManager` ASC), CONSTRAINT `idTime3` FOREIGN KEY (`idTime`) REFERENCES `ManageMyTeam`.`times` (`idTime`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `idManager1` FOREIGN KEY (`idManager`) REFERENCES `ManageMyTeam`.`managers` (`idManager`) ON DELETE CASCADE ON UPDATE CASCADE)
Alguem poderia me dar um help?