Como selecionar o conteúdo de uma coluna vindo de um DataSet C# – c# ado.net

Pergunta:


Existe uma forma melhor de buscar o conteúdo de uma coluna especifica? Tenho uma informação que se repete em uma coluna “modelo” quero recupera este conteúdo apenas 1 vez. Estou fazendo assim, mais talvez tenha uma forma melhor de ser feito.

        public DataSet get()
        {
            OleDbConnection conn = new OleDbConnection(Conexao.getConexao());
            conn.Open();
            OleDbDataAdapter da = new OleDbDataAdapter("Select Codigo as Codigo, Nome as Nome,modelo, Cargo as Cargo, Empresa as Empresa From funcionarios", conn);
            DataSet ds = new DataSet();
            da.Fill(ds);
            return ds;
        }

   private void exibirDados()
    {
        try
        {
            funcionarios funci = new funcionarios();
            DataSet ds = funci.get();
            dgvDados.DataSource = ds.Tables[0];
            string retorno = ConteudoColuna("modelo",ds);
        }
        catch
        {
            throw;
        }
    }

    private string ConteudoColuna(string nomeColuna, DataSet table)
    {
        DataTable recebeTable = table.Tables[0];

        foreach (DataColumn column in recebeTable.Columns)
        {

            if (column.ToString() == nomeColuna)
            {
                string teste2 = column.ToString();
                return column.ToString();
            }

        }
        return  "";
    }

Autor da pergunta itasouza

Resposta Rovann Linhalis:

Existe uma forma melhor de buscar o conteúdo de uma coluna especifica?

Sim, se você já tem o nome da coluna, basta fazer: row["modelo"].ToString(); ou poderia fazer apenas ds.Tables[0].Rows[0]["modelo"].ToString(); que também funciona (desde que nenhuma coleção seja vazia), mas esse é o menor dos problemas…

O Primeiro passo é definir o que é um Funcionario em uma classe “POCO”:

public class Funcionario
{
    public int Id {get;set;}
    public string Nome {get;set;}
    public string Modelo {get;set;}
}

Então, poderia fazer o seu Get, utilizando o objeto tipado:

public List<Funcionario> GetFuncionarios() //O Método retorna uma coleção de Funcionarios
{
    List<Funcionario> funcionarios = new List<Funcionario>();

    using (OleDbConnection conexao = new OleDbConnection("string conexao")) //utilizar uma conexão dentro de um bloco using, pra ser descartado após o bloco.
    {
        conexao.Open();

        using (OleDbCommand cmd = new OleDbCommand("select id, nome, modelo from funcionarios"))
        {
            using (OleDbDataReader dr = cmd.ExecuteReader()) //O Data reader, vai lendo linha a linha e preenchendo a coleção. Se usar um DataAdapter com fill, ele primeiro seleciona tudo, e depois preenche o DataSet de uma vez (mais lento)
            {
                while (dr.Read()) //Enquanto estiver lendo...
                {
                    //vai adicionando funcionários...
                    funcionarios.Add(new Funcionario() 
                    { 
                       Id = dr.GetInt32(0),
                       Nome = dr.GetString(1),
                       Modelo = dr.GetString(2)
                    });
                }

            }
        }
        conexao.Close(); //fecha a conexão...
    }


    return funcionarios; //retorna a lista.

}

E depois, buscar/filtrar/exibir os dados:

//Selecionando todos os funcionários
List<Funcionario> funcionarios = d.GetFuncionarios();


//Selecionando um funcionário
Funcionario f1 = funcionarios.Where(x => x.Id == 1).FirstOrDefault();


//Filtrando funcionários que começam com a letra A
List<Funcionario> filtrados = funcionarios.Where(x=> x.Nome.StartsWith("A")).ToList();


//Depois você pode usar essas lista como source do DataGridView:
//dataGridView1.DataSource = filtrados;

//Buscar apenas o Modelo do primeiro registro
string modelo = funcionarios.First().Modelo;

Apesar de não rodar (não tem base de dados), coloquei no SQLFiddle

Fonte

Related Posts:

Qual a diferença entre AppCompatActivity e Activity? – android android-activity
Pergunta: Qual a diferença da AppCompatActivity para Activity ? A partir de qual versão a AppCompatActivity foi adicionada ao Android? Autor da pergunta Luhhh A diferença reside ...
Como abreviar palavras em PHP? – php string
Pergunta: Possuo informações comuns como nome de pessoas e endereços, e preciso que elas contenham no máximo 30 caracteres sem cortar palavras. Exemplo: 'Avenida Natalino João Brescansin' ...
Qual é a finalidade de um parêntese vazio numa declaração Lambda? – c# expressões-lambda característica-linguagem
Pergunta: Criei um exemplo de uma declaração Lambda sem argumentos, entretanto, estou com duvidas referente a omissão do parêntese vazio () na declaração. Veja o exemplo: class ...
Boas práticas para URI em API RESTful – api rest restful
Pergunta: Estou com dúvida em relação às URIs de alguns recursos da api que estou desenvolvendo. Tenho os recursos projetos e atividades com relação 1-N, ...
Dúvidas sobre a integração do MySQL com Java – java mysql netbeans
Pergunta: Estou criando um sistema no NetBeans, utilizando a linguagem Java e o banco de dados MySQL. Escrevi o seguinte código para realizar a conexão ...
Qual é a finalidade da pasta Model do framework Inphinit? – php inphinit
Pergunta: No Inphinit micro-framework existe a pasta Model que fica dentro da pasta application, e nela é onde ficam as classes, mas eu estou muito ...
Uso do ‘@’ em variáveis – javascript typescript coffeescript
Pergunta: Vejo em algumas linguagens que compilam para javascript, como TypeScript e CoffeeScript, o uso do @ em variáveis, como também, casos em que o ...
Qual tamanho máximo um arquivo JSON pode ter? – json arquivo
Pergunta: Vou dar um exemplo para conseguir explicar minha duvida: Preciso recuperar informação de imagens vindas de uma API, esse banco de imagens me retorna JSON's ...
O que é Teste de Regressão? – terminologia engenharia-de-software testes
Pergunta: Na matéria de Teste de Software o professor abordou um termo chamado Teste de Regressão, isto dentro da disciplina de teste de software. Sendo ...
O que é um construtor da linguagem? – php característica-linguagem
Pergunta: Em PHP, já li e ouvi várias vezes a respeito dos Construtores da Linguagem. Os casos que sempre ouvi falar deles foi em casos ...
Função intrínseca para converter numérico para string – cobol
Pergunta: Estou a tentar saber se existe alguma função intrínseca do COBOL para converter um data numérico para string sem precisar usar a cláusula REDEFINES: ( ...
Porque usar implements? – java android
Pergunta: Qual a diferença entre usar btn.setOnClickListener(new OnClickListener() { e public class MainActivity extends Activity implements OnClickListener{ Estive fazendo um curso de Android e meu professor falou que ...
O que é XHTML e quando deve ser usado? – html xml xhtml
Pergunta: O que eu sei é que o XHTML precisa ser XML válido. Isso implica, por exemplo, que todas as tags precisam ser fechadas. Por ...
Uma placa aceleradora de vídeo pode melhorar o desempenho não-gráfico? [fechada] – desempenho
Pergunta: Para desenvolver em Ruby on Rails, eu utilizo aqui uma máquina virtual do VirtualBox com Ubuntu Server 14.04 sem interface gráfica instalada. Recentemente descobri uma ...
Concat() VS Union() – c# .net
Pergunta: Qual a diferença entre Concat() e Union() ? Quando usar Concat() e quando usar Union() ? Somente pode ser usado em list ? ...

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *