0

我正在尝试使用带有一些附加条件的 case 条件来创建一个查询,以避免循环它。我知道问题出在哪里。

代码在这里:

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

你能指出我关于命令文本的正确方向吗?或者建议另一种解决方案?提前致谢!

4

1 回答 1

0

执行该代码后,您是否真正查看过它的内容CommandText?我不会打赌。为什么那不是你做的第一件事?查看您正在执行的 SQL,而不是构建该 SQL 的代码。这不是你想的那样。我建议您使用 XML 文字来创建该 SQL 代码。

于 2014-07-29T23:26:17.717 回答