System.Data.SqlClient.SqlException: неправильный синтаксис рядом с '-' - PullRequest
0 голосов
/ 16 декабря 2018
 SqlCommand command1 = connection.CreateCommand();
 command1.CommandType = CommandType.Text;
 command1.CommandText = "update product set product_qty=product_qty-"+t1.Text;
 command1.ExecuteNonQuery();

В корзине, когда я ввожу «2» и нажимаю кнопку «Добавить в корзину», «product_qty» в описании должно быть обновлено до (OriginalQTY - 2).Но я получаю эту ошибку выше.Пожалуйста, помогите!

1 Ответ

0 голосов
/ 16 декабря 2018

Попробуйте использовать параметры.Это делает синтаксис более понятным (и защищает вас от SQL-инъекции ).

Также попробуйте использовать [using] , чтобы утилизировать объекты.

// using usings :-)
using (var connection = new SqlConnection(connectionstring))
using (var command1 = connection.CreateCommand())
{
     command1.CommandType = CommandType.Text;

     // your query with parameter: @qty
     // note 
     command1.CommandText = "update product set product_qty -=@qty";

     // setting a type: aka VarChar, Int etc, will make sure you 
     // don't mix up all the ' and "'s
     command1.Parameters.Add("@qty", SqlDbType.Int);

     // set parameter value: all values are safe.
     // since you are using an int, make sure you put in an int.
     // [note] int.Parse("some text other than a number like 3") 
     // will throw an exception
     command1.Parameters["@qty"].Value = int.Parse(t1.Text);

     // execute
     command1.ExecuteNonQuery();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...