private void ConsultaSQL_Click(object sender, EventArgs e)
 {
     if (!string.IsNullOrEmpty(this.textBoxSQL.Text))
     {
         try
         {
             string[] sentencia;
             sentencia = this.textBoxSQL.Text.Split(' ');
             sentencia = MetodosAuxiliares.LimpiaSentencia(sentencia);
             if (sentencia.Contains("select"))
             {
                 int i;
                 if (sentencia.First().Equals("select"))
                 {
                     Entidad         entidad;
                     List <Registro> registros;
                     List <Atributo> atributos;
                     entidad = null;
                     if (!sentencia.Contains("inner"))
                     {
                         atributos = this.consultaAtributosSelect(sentencia, ref entidad);
                         if (entidad.Atributos.Count != 0)
                         {
                             if (entidad.Registros.Count != 0)
                             {
                                 if (!sentencia.Contains("where"))
                                 {
                                     registros = entidad.Valores;
                                     this.actualizaDataGridSQLConSelect(entidad, atributos, registros, false);
                                 }
                                 else
                                 {
                                     string[] where;
                                     i = Array.IndexOf(sentencia, "where");
                                     i++;
                                     if (i != sentencia.Length)
                                     {
                                         where     = MetodosAuxiliares.SubArray(sentencia, i, sentencia.Length - i);
                                         registros = this.consultaRegistrosSelectWhere(atributos, entidad, where);
                                         this.actualizaDataGridSQLConSelect(entidad, atributos, registros, false);
                                     }
                                     else
                                     {
                                         throw new InvalidConsultException("Por favor ponga el enunciado de la sentencia where");
                                     }
                                 }
                             }
                             else
                             {
                                 throw new InvalidConsultException("La entidad a consultar no tiene registros para consultar");
                             }
                         }
                         else
                         {
                             throw new InvalidConsultException("La entidad a consultar no tiene atributos para consultar");
                         }
                     }
                     else if (sentencia.Contains("inner") && sentencia.Contains("join") && sentencia.Contains("on") && !sentencia.Contains("where"))
                     {
                         entidad   = this.innerJoin(sentencia);
                         atributos = this.consultaAtributosSelectInnerJoin(sentencia, entidad);
                         if (entidad.Registros.Count > 0)
                         {
                             if (!sentencia.Contains("and"))
                             {
                                 registros = entidad.Valores;
                                 this.actualizaDataGridSQLConSelect(entidad, atributos, registros, true);
                             }
                             else
                             {
                                 string[] and;
                                 i = Array.IndexOf(sentencia, "and");
                                 i++;
                                 if (i != sentencia.Length)
                                 {
                                     and       = MetodosAuxiliares.SubArray(sentencia, i, sentencia.Length - i);
                                     registros = this.consultaRegistrosSelectAnd(atributos, entidad, and);
                                     this.actualizaDataGridSQLConSelect(entidad, atributos, registros, false);
                                 }
                                 else
                                 {
                                     throw new InvalidConsultException("Por favor ponga el enunciado de la sentencia where");
                                 }
                             }
                         }
                     }
                     else
                     {
                         throw new InvalidConsultException("El formato de la consulta no es valido por favor revise la sentencia");
                     }
                 }
                 else
                 {
                     throw new InvalidConsultException("El select debe ir al principio de la sentencia");
                 }
             }
             else
             {
                 throw new InvalidConsultException("Formato de consulta no valido no contiene un select :(");
             }
         }
         catch (InvalidConsultException e1)
         {
             MessageBox.Show(e1.Message, "Consulta Invalida");
         }
         catch (NotImplementedException e2)
         {
             MessageBox.Show(e2.Message, "Aun no implementado");
         }
     }
     else
     {
         MessageBox.Show("La cadena no puede estar vacia");
     }
 }