我试图从文本框中减去数据库列中的值我得到错误在预期条件的上下文中指定的非布尔类型的表达式
cn.Open();
SqlCommand command = new SqlCommand();
command.Connection = cn;
command.CommandText = "select * from class where quanitity - '"+Convert.ToInt32(textBox10.Text)+"'";
command.ExecuteNonQuery();
cn.Close();
答案 0 :(得分:2)
你不是列的负值。你想要这样
command.CommandText = "update class set quanitity = quanitity - "+Convert.ToInt32(textBox10.Text) ;
答案 1 :(得分:2)
这肯定有效
command.CommandText = string.Format("update class set quanitity= quanitity - {0}",Convert.ToInt32(textBox10.Text));
答案 2 :(得分:0)
您需要一个值来比较两个数字。您是从数量中减去TextBox10值,但是在减去该值后,您希望看到哪个结果集?需要在WHERE的右边某处进行比较。
command.CommandText = "select (quantity - "+Convert.ToInt32(textBox10.Text)+") from class ;
答案 3 :(得分:0)
我怀疑你SQL Injection alert ..不要连接字符串它是为sql注入alert而广泛打开的。所以使用参数化查询
command.CommandText = "select * from class where quanitity -@txtbox10";
command.Parameters.AddWithValue("@txtbox10", Convert.ToInt32(textBox10.Text));
command.ExecuteNonQuery();