You are atempting dynamic SQL and SQL is trying to cast the @Data parameter to an integer value. Rather try something like this:
query = string.Format("update tablename set Confirmed=0 where data in ({0}) and id=@Id", Convert.ToString(_data));
sqlParameters = new SqlParameter[1];
sqlParameters[0] = new SqlParameter("@Shopid", SqlDbType.Int);
sqlParameters[0].Value = Convert.ToString(_shopid);