当我尝试这样做时出现SQL错误:','附近的语法不正确。错误
public static int GetOrderId(decimal totalprice, int userid)
{
string s = "SELECT * from orders where OrderUserId = " + userid + " and OrderTotalPrice = " + totalprice;
cmd = new SqlCommand(s, con);
int temporderid = Convert.ToInt32(cmd.ExecuteScalar());
return temporderid;
}
到目前为止,我可以看到它,因为它返回OrderTotalPrice,格式不兼容。但我无法弄清楚如何以兼容的格式获得它。
您应该使用参数化查询(但至少在这种情况下这两个值都至少保证数字) –
什么SQL命令看起来像它得到的论据串联后?基本上你的命令执行前's'的值。您通常也不能使用带有SELECT *查询的ExecuteScalar。 ExecuteScalar需要返回一个值,而不是一行数据。 –
所以改变为读者可以做的伎俩或? –