SQL选择语句,其顺序为参数

时间:2017-12-08 21:41:34

标签: c# mysql sql

无法获取此代码以打印我需要打印的内容。 我有一个下拉列表,允许用户选择他们希望表被排序的内容。我得到了这个值并将其绑定到参数' @ param'。它没有按正确的顺序放置表中的项目。

注意:当我更改'字符串sql'对于我的下拉列表中的值,它可以正常工作。

string sql = "Select * from yeet order by @param desc;";
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.Prepare();
cmd.Parameters.AddWithValue("@param", DropTopWop.SelectedValue.ToString());
MySqlDataReader reader = cmd.ExecuteReader();

1 个答案:

答案 0 :(得分:6)

你需要这样做:

order by    
    case @param
        when 'PutYourColumNameHere' then PutYourColumNameHere
        when 'AnotherColumn' then AnotherColumn--, and so on                    
    end desc

例如,如果您的表格players有2列名为AgeName,那么它将如下所示:

Select * from players 
order by 
    case @param 
        when 'Age' then Age
        when 'Name' then Name               
    end desc;