public static List <object> ListaObjeto(SqlDataReader dadosTabela, object entidade, Type tipo, List <string> colunas = null) { PropertyInfo[] propertyInfo = DefineColunasCarregadas(colunas, tipo); var lista = new List <object>(); if (propertyInfo.Count() > 0) { while (dadosTabela.Read()) { entidade = Activator.CreateInstance(tipo); foreach (var property in propertyInfo) { var nomeColuna = Valida.NomeColuna(property); var valor = dadosTabela[nomeColuna] != DBNull.Value ? dadosTabela[nomeColuna] : null; property.SetValue(entidade, valor, null); } lista.Add(entidade); } } return(lista); }
public static void Consulta(out string comandoSQL, Type tipo, TipoConsulta tipoConsulta, int?top = null, string colunas = "*", string parametros = "", string condicoes = "") { string nomeTabela = Valida.NomeTabela(tipo); switch (tipoConsulta) { case TipoConsulta.Select: string topLinhas; TopLinhas(top, out topLinhas); comandoSQL = $"SELECT{topLinhas}{colunas} FROM {nomeTabela} {condicoes};"; break; case TipoConsulta.Definicao: comandoSQL = $"SELECT ID = (COLUMNPROPERTY(OBJECT_ID(B.TABLE_SCHEMA + '.' + B.TABLE_NAME), COLUMN_NAME, 'IsIdentity')) FROM " + $"INFORMATION_SCHEMA.KEY_COLUMN_USAGE A INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS B ON A.CONSTRAINT_NAME = B.CONSTRAINT_NAME " + $"WHERE CONSTRAINT_TYPE = 'PRIMARY KEY' AND B.TABLE_NAME = '{nomeTabela}';"; break; case TipoConsulta.Insert: comandoSQL = $"INSERT INTO {nomeTabela} ({colunas}) VALUES ({parametros}){condicoes}"; break; case TipoConsulta.Update: comandoSQL = $"UPDATE {nomeTabela} SET {parametros} WHERE {condicoes}"; break; case TipoConsulta.Delete: comandoSQL = $"DELETE {nomeTabela} WHERE {condicoes}"; break; default: comandoSQL = ""; break; } }
private static PropertyInfo[] DefineColunasCarregadas(List <string> colunas, Type tipo) { PropertyInfo[] propertyInfo = tipo.GetProperties().Where(x => Valida.Coluna(x) != null || Valida.PrimaryKey(x) != null || Valida.ForeignKey(x) != null).ToArray(); if (colunas != null && colunas[0] != "*") { propertyInfo = propertyInfo.Where(x => colunas.Contains(x.Name)).ToArray(); } return(propertyInfo); }
public static List <string> Parametros(object entidade, Type tipo, HydraParameters parametros, PropertyInfo[] colunas) { List <string> listaNomeColunas = new List <string>(); foreach (var coluna in colunas) { var nomeColuna = Valida.NomeColuna(coluna); var valor = entidade.GetType().GetProperty(coluna.Name).GetValue(entidade, null); parametros.Add(nomeColuna, valor); listaNomeColunas.Add(nomeColuna); } return(listaNomeColunas); }
public static void ColunasDataTable(DataTable dataTable, Type tipo) { PropertyInfo[] propertyInfo = tipo.GetProperties().Where(x => Valida.Coluna(x) != null || Valida.PrimaryKey(x) != null).ToArray(); foreach (PropertyInfo propriedade in propertyInfo) { string nomeColuna = Valida.NomeColuna(propriedade); Type tipoColuna = propriedade.PropertyType; tipoColuna = Valida.TipoNull(tipoColuna); DataColumn dataColumn = new DataColumn(nomeColuna, tipoColuna); dataTable.Columns.Add(dataColumn); } }
public static List <HydraTuple <T1, T2> > ListaDuasTuple <T1, T2>(SqlDataReader dadosTabela) { var lista = new List <HydraTuple <T1, T2> >(); var tipoTupla1 = Valida.TipoNull(typeof(T1)); var tipoTupla2 = Valida.TipoNull(typeof(T2)); T1 Tupla1; T2 Tupla2; while (dadosTabela.Read()) { Tupla1 = NovaInstancia <T1>(tipoTupla1, dadosTabela[0]); Tupla2 = NovaInstancia <T2>(tipoTupla2, dadosTabela[1]); lista.Add(HydraTuple.New(Tupla1, Tupla2)); } return(lista); }
public static object Objeto(SqlDataReader dadosTabela, object entidade, Type tipo, List <string> colunas = null) { PropertyInfo[] propertyInfo = DefineColunasCarregadas(colunas, tipo); if (propertyInfo.Count() > 0) { while (dadosTabela.Read()) { foreach (var property in propertyInfo) { var nomeColuna = Valida.NomeColuna(property); var valor = dadosTabela[nomeColuna] != DBNull.Value ? dadosTabela[nomeColuna] : null; property.SetValue(entidade, valor, null); } } } return(entidade); }
public static List <T> DataTableEmList <T>(DataTable dataTable) { var lista = new List <T>(); var tipo = typeof(T); List <string> colunas = dataTable.Columns.Cast <DataColumn>().Select(x => x.ColumnName).ToList(); PropertyInfo[] propertyInfo = DefineColunasCarregadas(colunas, tipo); T entidade; foreach (var row in dataTable.Rows.Cast <DataRow>()) { entidade = CriaIstancia <T>(tipo); if (propertyInfo.Count() > 0) { foreach (var property in propertyInfo) { var nomeColuna = Valida.NomeColuna(property); var valor = row[nomeColuna] != DBNull.Value ? row[nomeColuna] : null; property.SetValue(entidade, valor, null); } } else { var valor = row[0] != DBNull.Value ? row[0] : null; object genericoTipificado = valor; entidade = (T)Convert.ChangeType(genericoTipificado, typeof(T)); } lista.Add(entidade); } return(lista); }
public static List <T> Lista <T>(SqlDataReader dadosTabela, List <string> colunas = null) { var lista = new List <T>(); var tipo = typeof(T); PropertyInfo[] propertyInfo = DefineColunasCarregadas(colunas, tipo); T entidade; while (dadosTabela.Read()) { entidade = CriaIstancia <T>(tipo); if (propertyInfo.Count() > 0) { foreach (var property in propertyInfo) { var nomeColuna = Valida.NomeColuna(property); var valor = dadosTabela[nomeColuna] != DBNull.Value ? dadosTabela[nomeColuna] : null; property.SetValue(entidade, valor, null); } } else { var valor = dadosTabela[0] != DBNull.Value ? dadosTabela[0] : null; object genericoTipificado = valor; entidade = (T)Convert.ChangeType(genericoTipificado, typeof(T)); } lista.Add(entidade); } return(lista); }