public string Executar(string comando, int colunaRetorno) { NpgsqlConnection conexao = null; try { conexao = ConectaDB.getConexao(); NpgsqlCommand cmd = new NpgsqlCommand(comando, conexao); NpgsqlDataReader dr = cmd.ExecuteReader(); // Caso o comando queira retornar um valor após a execução (RETURNING) if (dr.Read()) { // Resgata o valor da coluna colunaRetorno na linha executada return(dr[colunaRetorno].ToString()); } else { return(null); } } catch (Exception ex) { throw new Exception(ex.Message + "\n\nComando: " + comando); } finally { if (conexao != null) { conexao.Close(); } } }
public List <Curso> ListarCursos(string colunas, string tabela, string condicao) { List <Curso> cursos = new List <Curso>(); NpgsqlConnection conexao = null; try { conexao = ConectaDB.getConexao(); string sql = condicao == null ? $"SELECT {colunas} FROM {tabela}" : $"SELECT {colunas} FROM {tabela} WHERE {condicao}"; NpgsqlCommand cmd = new NpgsqlCommand(sql, conexao); NpgsqlDataReader dr = cmd.ExecuteReader(); // Para cada 'Curso' ("linha" do DB pelo dr.Read()), atribui // os valores das colunas 'ler' contidos em 'dr' string[] ler = colunas.Split(new string[] { ", " }, StringSplitOptions.None); // Resgata as colunas while (dr.Read()) // Cada loop é uma linha encontrada { Curso curso = new Curso(); for (int i = 0; i < ler.Length; i++) // Para cada "coluna" { switch (ler[i]) // Descobre qual é a coluna e atribui ao atributo { case "sigla": curso.Sigla = dr["sigla"].ToString(); break; case "cursos.nome": case "nome": curso.Nome = dr["nome"].ToString(); break; case "*": curso.Sigla = dr["sigla"].ToString(); curso.Nome = dr["nome"].ToString(); break; } } cursos.Add(curso); } } catch (Exception ex) { throw new Exception(ex.Message + "\n\nColunas: \"" + colunas + "\"\nTabela: \"" + tabela + "\"\nCondicao: \"" + condicao + "\""); } finally { if (conexao != null) { conexao.Close(); } } return(cursos); }
public object Executar(string comando) { NpgsqlConnection conexao = null; try { conexao = ConectaDB.getConexao(); NpgsqlCommand cmd = new NpgsqlCommand(comando, conexao); // Retorna a primeira coluna da primeira linha do resultado gerado pelo comando return(cmd.ExecuteScalar()); } catch (Exception ex) { throw new Exception(ex.Message + "\n\nComando: " + comando); } finally { if (conexao != null) { conexao.Close(); } } }
public List <Usuario> ListarUsuarios(string colunas, string tabela, string condicao) { List <Usuario> usuarios = new List <Usuario>(); NpgsqlConnection conexao = null; try { conexao = ConectaDB.getConexao(); string sql = condicao == null ? $"SELECT {colunas} FROM {tabela}" : $"SELECT {colunas} FROM {tabela} WHERE {condicao}"; NpgsqlCommand cmd = new NpgsqlCommand(sql, conexao); NpgsqlDataReader dr = cmd.ExecuteReader(); // Para cada 'usuario' ("linha" do DB pelo dr.Read()), atribui // os valores das colunas 'ler' contidos em 'dr' string[] ler = colunas.Split(new string[] { ", " }, StringSplitOptions.None); // Resgata as colunas while (dr.Read()) // Cada loop é uma linha encontrada { Usuario usuario = new Usuario(); for (int i = 0; i < ler.Length; i++) // Para cada "coluna" { switch (ler[i]) // Descobre qual é a coluna e atribui ao atributo { case "usuarios.id": case "id": usuario.ID = Convert.ToInt16(dr["id"]); break; case "login": usuario.Login = dr["login"].ToString(); break; case "senha": usuario.Senha = dr["senha"].ToString(); break; case "rg": usuario.RG = dr["rg"].ToString(); break; case "cpf": usuario.CPF = dr["cpf"].ToString(); break; case "email": usuario.Email = dr["email"].ToString(); break; case "nome": usuario.Nome = dr["nome"].ToString(); break; case "telefone": usuario.Telefone = dr["telefone"].ToString(); break; case "tipo": usuario.Tipo = dr["tipo"].ToString(); break; case "*": usuario.ID = Convert.ToInt16(dr["id"]); usuario.Login = dr["login"].ToString(); usuario.Senha = dr["senha"].ToString(); usuario.RG = dr["rg"].ToString(); usuario.CPF = dr["cpf"].ToString(); usuario.Email = dr["email"].ToString(); usuario.Nome = dr["nome"].ToString(); usuario.Telefone = dr["telefone"].ToString(); usuario.Tipo = dr["tipo"].ToString(); break; } } usuarios.Add(usuario); } } catch (Exception ex) { throw new Exception(ex.Message + "\n\nColunas: \"" + colunas + "\"\nTabela: \"" + tabela + "\"\nCondicao: \"" + condicao + "\""); } finally { if (conexao != null) { conexao.Close(); } } return(usuarios); }
public List <Nota> ListarNotas(string colunas, string tabela, string condicao) { List <Nota> notas = new List <Nota>(); NpgsqlConnection conexao = null; try { conexao = ConectaDB.getConexao(); string sql = condicao == null ? $"SELECT {colunas} FROM {tabela}" : $"SELECT {colunas} FROM {tabela} WHERE {condicao}"; NpgsqlCommand cmd = new NpgsqlCommand(sql, conexao); NpgsqlDataReader dr = cmd.ExecuteReader(); // Para cada 'Nota' ("linha" do DB pelo dr.Read()), atribui // os valores das colunas 'ler' contidos em 'dr' string[] ler = colunas.Split(new string[] { ", " }, StringSplitOptions.None); // Resgata as colunas while (dr.Read()) // Cada loop é uma linha encontrada { Nota nota = new Nota(); for (int i = 0; i < ler.Length; i++) // Para cada "coluna" { switch (ler[i]) // Descobre qual é a coluna e atribui ao atributo { case "notas.curso": case "curso": nota.Curso = dr["nome"].ToString(); break; case "estudante_id": nota.Estudante = Convert.ToInt16(dr["estudante_id"]); break; case "materia": nota.Materia = dr["materia"].ToString(); break; case "num_nota": nota.NumeroDaNota = Convert.ToInt16(dr["num_nota"]); break; case "valor": nota.Valor = dr["valor"] is DBNull ? -1 : Convert.ToDouble(dr["valor"]); break; case "*": nota.Curso = dr["nome"].ToString(); nota.Estudante = Convert.ToInt16(dr["estudante_id"]); nota.Materia = dr["materia"].ToString(); nota.NumeroDaNota = Convert.ToInt16(dr["num_nota"]); nota.Valor = dr["valor"] is DBNull ? -1 : Convert.ToDouble(dr["valor"]); break; } } notas.Add(nota); } } catch (Exception ex) { throw new Exception(ex.Message + "\n\nColunas: \"" + colunas + "\"\nTabela: \"" + tabela + "\"\nCondicao: \"" + condicao + "\""); } finally { if (conexao != null) { conexao.Close(); } } return(notas); }
public List <Materia> ListarMaterias(string colunas, string tabela, string condicao) { List <Materia> materias = new List <Materia>(); NpgsqlConnection conexao = null; try { conexao = ConectaDB.getConexao(); string sql = condicao == null ? $"SELECT {colunas} FROM {tabela}" : $"SELECT {colunas} FROM {tabela} WHERE {condicao}"; NpgsqlCommand cmd = new NpgsqlCommand(sql, conexao); NpgsqlDataReader dr = cmd.ExecuteReader(); // Para cada 'Materia' ("linha" do DB pelo dr.Read()), atribui // os valores das colunas 'ler' contidos em 'dr' string[] ler = colunas.Split(new string[] { ", " }, StringSplitOptions.None); // Resgata as colunas while (dr.Read()) // Cada loop é uma linha encontrada { Materia materia = new Materia(); for (int i = 0; i < ler.Length; i++) // Para cada "coluna" { switch (ler[i]) // Descobre qual é a coluna e atribui ao atributo { case "materias.curso": case "curso": materia.Curso = dr["curso"].ToString(); break; case "materias.sigla": case "sigla": materia.Sigla = dr["sigla"].ToString(); break; case "materias.nome": case "nome": materia.Nome = dr["nome"].ToString(); break; case "lecionador_id": materia.Lecionador = dr["lecionador_id"] is DBNull ? -1 : Convert.ToInt16(dr["lecionador_id"]); break; case "notas": materia.Notas = dr["notas"] is DBNull ? new string[0] : (string[])dr["notas"]; break; case "pesos": materia.Pesos = dr["pesos"] is DBNull ? new float[0] : (float[])dr["pesos"]; break; case "estudantes_id": materia.Estudantes = dr["estudantes_id"] is DBNull ? new int[0] : (int[])dr["estudantes_id"]; break; case "*": materia.Curso = dr["curso"].ToString(); materia.Sigla = dr["sigla"].ToString(); materia.Nome = dr["nome"].ToString(); // Checagem para não tentar converter DBNull em algo materia.Lecionador = dr["lecionador_id"] is DBNull ? -1 : Convert.ToInt16(dr["lecionador_id"]); materia.Notas = dr["notas"] is DBNull ? new string[0] : (string[])dr["notas"]; materia.Pesos = dr["pesos"] is DBNull ? new float[0] : (float[])dr["pesos"]; materia.Estudantes = dr["estudantes_id"] is DBNull ? new int[0] : (int[])dr["estudantes_id"]; break; } } materias.Add(materia); } } catch (Exception ex) { throw new Exception(ex.Message + "\n\nColunas: \"" + colunas + "\"\nTabela: \"" + tabela + "\"\nCondicao: \"" + condicao + "\""); } finally { if (conexao != null) { conexao.Close(); } } return(materias); }
public List <Admin> ListarAdmins(string colunas, string tabela, string condicao) { List <Admin> admins = new List <Admin>(); NpgsqlConnection conexao = null; try { // Conecta com o DB, cria e executa o comando e resgata a tabela conexao = ConectaDB.getConexao(); // Conecta com o banco de dados string sql = condicao == null // Define o comando ? $"SELECT {colunas} FROM {tabela}" : $"SELECT {colunas} FROM {tabela} WHERE {condicao}"; NpgsqlCommand cmd = new NpgsqlCommand(sql, conexao); // Cria o comando NpgsqlDataReader dr = cmd.ExecuteReader(); // Executa o comando // Para cada 'admin' ("linha" do DB pelo dr.Read()), atribui // os valores das colunas 'ler' contidos em 'dr' string[] ler = colunas.Split(new string[] { ", " }, StringSplitOptions.None); // Resgata as colunas while (dr.Read()) // Cada loop é uma linha encontrada { Admin admin = new Admin(); for (int i = 0; i < ler.Length; i++) // Para cada "coluna" { switch (ler[i]) // Descobre qual é a coluna e atribui ao atributo { case "administradores.id": case "id": admin.ID = Convert.ToInt16(dr["id"]); break; case "login": admin.Login = dr["login"].ToString(); break; case "senha": admin.Senha = dr["senha"].ToString(); break; case "rg": admin.RG = dr["rg"].ToString(); break; case "cpf": admin.CPF = dr["cpf"].ToString(); break; case "email": admin.Email = dr["email"].ToString(); break; case "nome": admin.Nome = dr["nome"].ToString(); break; case "telefone": admin.Telefone = dr["telefone"].ToString(); break; case "cargo": admin.Cargo = dr["cargo"].ToString(); break; case "*": admin.ID = Convert.ToInt16(dr["id"]); admin.Login = dr["login"].ToString(); admin.Senha = dr["senha"].ToString(); admin.RG = dr["rg"].ToString(); admin.CPF = dr["cpf"].ToString(); admin.Email = dr["email"].ToString(); admin.Nome = dr["nome"].ToString(); admin.Telefone = dr["telefone"].ToString(); admin.Cargo = dr["cargo"].ToString(); break; } } admins.Add(admin); } } catch (Exception ex) { throw new Exception(ex.Message + "\n\nColunas: \"" + colunas + "\"\nTabela: \"" + tabela + "\"\nCondicao: \"" + condicao + "\""); } finally { if (conexao != null) { conexao.Close(); } } return(admins); }