在减法运算符c#web服务中,数据类型varchar和varchar不兼容
目前,我使用五个层,在我的业务层中,我有一个方法可以将他调用到我的Web服务中,但我不能进行减法在减法运算符c#web服务中,数据类型varchar和varchar不兼容,c#,web-services,windows-forms-designer,C#,Web Services,Windows Forms Designer,目前,我使用五个层,在我的业务层中,我有一个方法可以将他调用到我的Web服务中,但我不能进行减法 public void ActualizarStock(ConsultaStock consultaStock, int cantidad_salida) { this.configurarConexion(); this.Conec.CadenaSQL = "UPDATE Consulta_stock " + " SET can
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();
}
像这样:
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 + "';";
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();
}
嗯,是的。。。你不能减去字符串。你为什么要这么做?我的数据库和类中的参数都是int,我如何才能转换为int?SQL中的字符
,
被用作字符串类型分隔符。根据consultaStock.Sku
的值,你可以成功地拥有SQL注入漏洞,这非常简单。。。该死的单引号。塔安克斯