Try re-writing it so that it uses a Parametrized query instead:
com=con.CreateCommand();
com.CommandText="UPDATE notification SET notice=@NO where id=@ID";
com.Parameters.AddWithValue("@NO", ta1.Value);
com.Parameters.AddWithValue("@ID", va);
This will remove potential problems from your user input (including an SQL Injection attack) and may well cure your problem. And make it easier to read...
If it doesn't, then you need to check that the table name is right, the two column names are right, and the the record exists in the db.