insert into customer (Advance,status)
values(@Advance,@status)
where Name='" + txtcname.Text.Trim() + "'";
在上面的插入语句中,将根据条件插入2个值,但我在where
条件中收到错误...
关键字
附近的语法不正确
这是错误
答案 0 :(得分:4)
插入查询不需要Where子句。只需写下
insert into customer (Advance, status) values(@Advance, @status)
您是要插入还是更新?如果您需要更新现有记录,请使用更新而不是像这样插入:
update customer set Advance=@Advance, status=@status
where Name='" + txtcname.Text.Trim() + "'";
修改强>
上述更新查询将用于此目的,但建议使用存储过程/参数化查询来实现SQL注入安全性。您应该遵循使用方法:
Private void UpdateRecord(string advance,string status, string name)
{
//SqlConnection con
SqlCommand cmdUpdate = new SqlCommand("update customer set Advance = @Advance, status = @Status where Name=@Name", con);
cmdUpdate.Parameters.AddWithValue("@Advance", advance);
cmdUpdate.Parameters.AddWithValue("@Status", status);
cmdUpdate.Parameters.AddWithValue("@name", name);
cmdUpdate.ExecuteNonQuery();
}
将您的数据传递如下:
UpdateRecord(@Advance,@Status,txtcname.Text.Trim());
答案 1 :(得分:0)
您无法使用'其中'在insert语句中。 要获得相同的结果,您可以插入所有条目并删除错误。
您可以在插入后使用select语句,从中选择从表到另一个表的条目。这对你来说也是一个解决方案。
Insert into customer (advance, status) values (...)
select advance, status
from anotherCustomerTable
where ...
P.S。尝试准备where-part。
答案 2 :(得分:0)
您不能在where子句中添加值。您可以通过以下方式实现此目的 如果你真的想插入新行,你可以按照@Munawar解决方案
insert into customer (Advance, status)
SELECT @Advance,@status
FROM customer where Name='" + txtcname.Text.Trim() + "'"