public static object RT_Tabela_Genérico(long Código, string Tabela) { string Nome_Campo; object Instância_Genérica; // Busca o registro na tabela ALDAL.Busca_Registro_Genérico(Código, Tabela); // Instancia a classe Instância_Genérica = Reflection.InstanciaClasse(Tabela); for (int i = 0; i < AFDAL.DtSementinha.Columns.Count; i++) { // Descobre de qual propriedade da classe o controle atual pertence Nome_Campo = AFDAL.DtSementinha.Columns[i].ColumnName; try { // Permite acessar a propriedade em questão Propriedade_Genérica = Instância_Genérica.GetType().GetProperty(Nome_Campo); // Método que insere na propriedade da classe instanciada o valor que está no controle Reflection_Classe.IN_Propriedade_Genérico(Propriedade_Genérica, AFDAL.DtSementinha.Rows[0][i].ToString(), Instância_Genérica); } catch (Exception Erro) { } } return(Instância_Genérica); }
public static void IN_Tabela_Genérico(object Instância_Genérica) { //Esse funciona no Frequentadores: ALDAL.gravaDados_Genérico(Classe_Genérica, Status); string Tabela, Parâmetros = "", Valores = "", Campo_Identity; // Retorna o nome da Classe(que é o mesmo nome da Tabela) Tabela = Instância_Genérica.GetType().Name; // Verifica se tem algum campo que é identity Campo_Identity = Reflection_BLL.Acha_Campo_Identity(Tabela); // Cria uma array de propriedades que pertencem a classe PropertyInfo[] Propriedades_Genéricas = Instância_Genérica.GetType().GetProperties(); //Percorre todas as propriedades da classe for (int i = 0; i < Propriedades_Genéricas.Length; i++) { // Se o campo for identity(auto incrementado), não há necessidade de inserir no SET do UPDATE if (Campo_Identity == Propriedades_Genéricas[i].Name) { i = i + 1; } Parâmetros = Parâmetros + Propriedades_Genéricas[i].Name + ","; Valores = Valores + Retorna_ValorPropriedade_Genérico(Propriedades_Genéricas[i].PropertyType.Name, Propriedades_Genéricas[i].GetValue(Instância_Genérica, null)) + ","; } //Retira o último caractere que é a vígula Parâmetros = Parâmetros.Substring(0, Parâmetros.Length - 1); Valores = Valores.Substring(0, Valores.Length - 1); //Finalmente insere o registro na tabela ALDAL.Insere_Registro_Genérico(Tabela, Parâmetros, Valores); }
public static BindingSource LL_DataGrid_Genérico(string Parâmetros, string Tabela) { //Executa o select ALDAL.Seleciona_Registros_Genérico(Parâmetros, Tabela); BindingSource bdsGenérico = new BindingSource(); //Carrega o datagridview com o resultado do select bdsGenérico.DataSource = AFDAL.DtSementinha; //e passa para o formulário de volta return(bdsGenérico); }
public static void UP_Tabela_Genérico(object Instância_Genérica, string TextoWHERE) { string Tabela, Parâmetros_Valores = "", Campo_Identity; // Retorna o nome da Classe(que é o mesmo nome da Tabela) Tabela = Instância_Genérica.GetType().Name; // Verifica se tem algum campo que é identity Campo_Identity = Reflection_BLL.Acha_Campo_Identity(Tabela); // Cria uma array de propriedades que pertencem a classe PropertyInfo[] Propriedades_Genéricas = Instância_Genérica.GetType().GetProperties(); //Percorre todas as propriedades da classe for (int i = 0; i < Propriedades_Genéricas.Length; i++) { //Constrói o WHERE do UPDATE if (TextoWHERE == Propriedades_Genéricas[i].Name) { TextoWHERE = Propriedades_Genéricas[i].Name + "=" + Retorna_ValorPropriedade_Genérico(Propriedades_Genéricas[i].PropertyType.Name, Propriedades_Genéricas[i].GetValue(Instância_Genérica, null)); } // Se o campo for identity(auto incrementado), não há necessidade de inserir no SET do UPDATE if (Campo_Identity == Propriedades_Genéricas[i].Name) { i = i + 1; } //Constrói o SET do UPDATE Parâmetros_Valores = Parâmetros_Valores + Propriedades_Genéricas[i].Name + "=" + Retorna_ValorPropriedade_Genérico(Propriedades_Genéricas[i].PropertyType.Name, Propriedades_Genéricas[i].GetValue(Instância_Genérica, null)) + ","; } //Retira o último caractere que é a vígula Parâmetros_Valores = Parâmetros_Valores.Substring(0, Parâmetros_Valores.Length - 1); //Finalmente atualiza o registro na tabela ALDAL.Atualiza_Registo_Genérico(Tabela, Parâmetros_Valores, TextoWHERE); }
public static void Attr_ComboBox_Genérico(Control Controle_Genérico, object Instância_Genérica) { string Nome_Campo; object Item_ComboBox; int Contador = 0; ComboBox ComboBox_Genérico = (ComboBox)Controle_Genérico; // A partir do nome do controle(ex: grpFREQUENTADORESsexo), essa função vai retornar "sexo", que é a propriedade Nome_Campo = Funções.fncRetornaNomePropriedade(Instância_Genérica.GetType().Name, Controle_Genérico.Name); // Padroniza o nome do campo para ficar igual ao nome da propriedade(ex: De "nome_crachá" Para "Nome_Crachá" Nome_Campo = Funções.fncConverteControle_Classe(Nome_Campo); // Instancia o objeto classe Instância_Genérica = Reflection.InstanciaClasse(Nome_Campo); Type Tipo_Genérico = Instância_Genérica.GetType(); // Retorna uma coleção de objetos para preencher a combobox ALDAL.LL_Genérico("*", Nome_Campo); // Lê o primeiro registro do Select ALDAL.Lê_Registro_Genérico(Instância_Genérica); while (Erro.getErro() == false) { // Invoca o método da classe que compõe a string a ser inserida na combobox Item_ComboBox = Tipo_Genérico.InvokeMember("insereRegistro_ComboBox", BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance, null, Instância_Genérica, new object[] { }); // Finalmente insere o item na ComboBox ComboBox_Genérico.Items.Insert(Contador, Item_ComboBox); // Lê o próximo registro do Select ALDAL.Lê_Registro_Genérico(Instância_Genérica); Contador++; } }
public static void EX_Tabela_Genérico(Formulários Formulário) { ALDAL.Exclui_Registro_Genérico(Formulário.Nome_classe, "Código=" + Formulário.Código); }