типы данных varchar и varchar несовместимы в веб-службе вычитания c # - PullRequest
0 голосов
/ 19 июня 2019

В настоящее время я использую пять слоев, и на моем бизнес-уровне у меня есть один метод для его вызова в мою веб-службу, но я не могу сделать вычитание

public void ActualizarStock(ConsultaStock consultaStock, int cantidad_salida)
{
    this.configurarConexion();
    this.Conec.CadenaSQL = "UPDATE Consulta_stock "
                           + " SET cantidad = '" + consultaStock.Cantidad.ToString() + "' - '"
                           + cantidad_salida.ToString()
                           + "' WHERE sku = '" + consultaStock.Sku + "';";
    this.Conec.EsSelect = true;
    this.Conec.conectar();
}

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

Символ ' в SQL используется в качестве разделителя строк, вы можете выполнить вычисление перед запросом или просто избавиться от '.

Например:

public void ActualizarStock(ConsultaStock consultaStock, int cantidad_salida)
{
    int nuevoStock = consultaStock.Cantidad - cantidad_salida;
    this.configurarConexion();
    this.Conec.CadenaSQL = "UPDATE Consulta_stock SET cantidad = " + nuevoStock.ToString() + " WHERE sku = '" + consultaStock.Sku + "';";
    this.Conec.EsSelect = true;
    this.Conec.conectar();
}
0 голосов
/ 19 июня 2019

Как это:

this.Conec.CadenaSQL = "UPDATE Consulta_stock "
                           + " SET cantidad = " + consultaStock.Cantidad.ToString() + " - "
                           + cantidad_salida.ToString()
                           + " WHERE sku = '" + consultaStock.Sku + "';";

или почему бы и нет:

this.Conec.CadenaSQL = "UPDATE Consulta_stock "
                           + " SET cantidad = " + (consultaStock.Cantidad - cantidad_salida).ToString()
                           + " WHERE sku = '" + consultaStock.Sku + "';";
...