Insert query do not needs Where clause. Just write
insert into customer (Advance, status) values(@Advance, @status)
Are you trying to insert or update? if you need to update an existing record then use update instead of insert like this:
update customer set Advance=@Advance, status=@status
where Name='" + txtcname.Text.Trim() + "'";
EDIT
Aforementioned update query will serve the purpose but its recommended to use stored procedures/parameterized queries for SQL injection safety. You should following use approach:
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();
}
Pass your data as following:
UpdateRecord(@Advance,@Status,txtcname.Text.Trim());