Я гуглил что-то, чего не могу понять. Короче говоря, моя проблема заключается в следующем:
При использовании этого;
String sYear2 = "2020";
string query = @"Select decJan from Stats where intRecnum = (select intRecnum from Stats where intAr = @year)";
var cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@year", sYear2);
Результат возвращает «111» (что является правильным значением столбца decJan года 2020.
Но, пробуя это;
String sYear2 = "2020";
String sColumn2 = "decJan";
string query = @"Select " + @column + @" from tbFuGraddagar where intRecnum = (select intRecnum from tbfuGraddagar where intAr = @year)";
var cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@year", sYear2);
cmd.Parameters.AddWithValue("@column", sColumn2);
Я получаю "decJan" как результат.
При поиске в Google все, что я обнаружил, что это невозможно без Dynami c SQL или это плохой дизайн.
Но я не понимаю, что такое разница ... все, что я хочу, это изменить код stati c на значение, похожее на @ year-параметр. "интерпретация" не должна заботиться о проверке SQL -синтаксиса, это просто вопрос о строковых манипуляциях.
Или я просто плохой C# -кодер?