Как правильно писать SQL запрос с параметрами?

Всем доброго времени суток.

При выполнении запроса на вставку новой строки в таблицу, получаю сами меркеры параметров а не их значения.
void Insert()
{
//данные

//Color
SqlParameter paramColor = new SqlParameter();
paramColor.DbType = DbType.String;
paramColor.Direction = ParameterDirection.Input;
paramColor.ParameterName = "@Color";
paramColor.Value = item.Color;

command.Parameters.Add(paramColor);

command.CommandText = "insert into Inventory (Make, PetName, Color) values ('@MakeI', '@PetNameI', '@Color')";

result = command.ExecuteNonQuery() > 0 ? true : false;

}


В коде описан только один параметр, остальные описаны точно так же.

В общем в базу мне летят не значения param*******.Value, а имена маркеров, т.е. @MakeI, @PetNameI, @ Color

Sql Server 2012 поддерживает параметры в запросах.
  • Вопрос задан
  • 5583 просмотра
Решения вопроса 1
@mayorovp
insert into Inventory (Make, PetName, Color) values ('@MakeI', '@PetNameI', '@Color')"
Ну разумеется, в базу будут лететь строковые константы - вы же их и отправляете. Вот вы когда на C# пишете, названия строковых переменных в кавычки не берете - почему же вы так поступили на языке SQL?

PS это что еще такое?!
result = command.ExecuteNonQuery() > 0 ? true : false;
Уберите лишний тернарный оператор, а то будете индусом!
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы