Você está aqui: C# ::: C# + Bancos de Dados ::: DbDataReader |
Entendendo as classes DbDataReader, OdbcDataReader, OleDbDataReader, SqlDataReader e outras derivaçõesQuantidade de visualizações: 11249 vezes |
A classe DBDataReader é usada para ler dados obtidos a partir de um comando SQL. Esta classe é abstrata, e, portanto, nunca usada diretamente em nossos códigos. Em vez disso usamos OdbcDataReader, OleDbDataReader, SqlDataReader e outras classes derivadas de DbDataReader. Veja sua posição na hierarquia de classes da plataforma .NET:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- System.Object System.MarshalByRefObject System.Data.Common.DbDataReader Entre as classes derivadas de DbDataReader podemos citar System.Data.DataTableReader, System.Data.Odbc.OdbcDataReader, System.Data.OleDb.OleDbDataReader, System.Data.OracleClient.OracleDataReader, System.Data.SqlClient.SqlDataReader, System.Data.SqlServerCe.SqlCeDataReader e MySql.Data.MySqlClient.MySqlDataReader (no driver .NET do MySQL). É claro que há muitos drivers de bancos de dados para .NET que também optam por descender seu DataReader de DbDataReader. O objetivo principal da classe DbDataReader é fornecer uma forma de navegar os registros retornados como resultado de um comando SQL. Esta navegação é apenas para frente, ou seja, não é possível voltar para os registros já lidos. Veja um trecho de código no qual usamos um objeto da classe OdbcDataReader para percorrer todos os registros contidos em uma determinada tabela do banco de dados. Note que exibimos o nome de cada cliente em uma mensagem MessageBox: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- private void button1_Click(object sender, EventArgs e){ // obtém a conexão com o banco de dados OdbcConnection conn = ConexaoODBC.obterConexao(); if(conn != null){ // obtém todos os clientes cadastrados OdbcCommand cmd = new OdbcCommand("SELECT * FROM clientes", conn); // obtém os dados retornados em forma de DataReader OdbcDataReader dr = cmd.ExecuteReader(); // vamos exibir o nome de cada cliente encontrado while(dr.Read()){ MessageBox.Show(dr["nome"].ToString()); } // fecha o DataReader dr.Close(); // fecha a conexão ConexaoODBC.fecharConexao(); } } Se estiver usando SQL Server, o DataReader a ser usado é SqlDataReader. Para finalizar, observe que um DataReader é criado sempre como resultado do método ExecuteReader() da classe DbCommand (e suas classes derivadas), ou seja, não é comum chamar o construtor desta classe. |
![]() |
C# ::: Windows Forms ::: ComboBox |
Como retornar o item selecionado em um ComboBox do C# Windows Forms usando a propriedade SelectedItemQuantidade de visualizações: 22670 vezes |
Muitas vezes precisamos obter o elemento selecionado em um ComboBox. Para isso podemos usar a propriedade SelectedItem. Esta propriedade retorna o item selecionado como um Object, o que nos permite efetuar um cast para o tipo que foi inserido. Veja um exemplo do uso deste método em um ComboBox que possui elementos do tipo String:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- private void button1_Click(object sender, EventArgs e){ // vamos obter o item selecionado no ComboBox // chamado "cidades" object sel = cidades.SelectedItem; // vamos exibir o resultado MessageBox.Show("Valor do elemento: " + sel.ToString()); } Aqui nós usamos o método ToString() da classe Object para obter uma representação textual do objeto sendo retornado. É claro que no caso de um objeto da classe String isso não é necessário. Incluímos apenas para fins didáticos. Neste trecho de código não convertemos o tipo retornado para um outro determinado tipo. Veja esta nova versão: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- private void button1_Click(object sender, EventArgs e){ // vamos obter o item selecionado no ComboBox // chamado "cidades" string sel = (string)cidades.SelectedItem; // vamos exibir o resultado MessageBox.Show("Valor do elemento: " + sel.ToString()); } Veja que agora nós fizemos uma conversão forçada (cast) de object para string. Se isso não fosse feito, a seguinte mensagem de erro de compilação seria exibida: Cannot implicitly convert type 'object' to 'string'. An explicit conversion exists (are you missing a cast?) |
C# ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar a instrução switch do C#Quantidade de visualizações: 26410 vezes |
A instrução switch da linguagem C# é útil quando queremos testar condições nas quais o uso de if..else if..else poderia ser considerado excessivo ou não aplicável. Esta instrução recebe uma variável como argumento e testa seu valor por meio de cláusulas case. Veja o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- static void Main(string[] args){ Console.Write("Digite um número inteiro: "); int valor = int.Parse(Console.ReadLine()); switch(valor){ case 1: Console.WriteLine("Você digitou o valor 1"); break; case 2: Console.WriteLine("Você digitou o valor 2"); break; case 3: Console.WriteLine("Você digitou o valor 3"); break; default: Console.WriteLine("Valor incorreto."); break; } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } Note que a instrução switch possui uma cláusula default para os casos nos quais o valor da variável não estiver presente em nenhuma das cláusulas case. Observe também o uso da instrução break para evitar a avaliação das cláusulas seguintes àquela na qual o valor desejado foi encontrado. Qualquer objeto, valor ou tipo referência que puder ser convertido em um valor inteiro, caractere, enumeração (enum) ou string pode ser usado como argumento para uma instrução switch. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- static void Main(string[] args){ Console.Write("Digite uma letra: "); char letra = Char.Parse(Console.ReadLine().ToLower()); switch(letra){ case "a": Console.WriteLine("Você digitou a letra a"); break; case "b": Console.WriteLine("Você digitou a letra b"); break; case "c": Console.WriteLine("Você digitou a letra c"); break; default: Console.WriteLine("Letra inválida."); break; } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } É possível haver cláusulas case vazias. Neste caso, o bloco de instruções é executado caso o valor da variável seja encontrado em qualquer uma das cláusulas. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- static void Main(string[] args){ Console.Write("Digite uma letra: "); char letra = Char.Parse(Console.ReadLine().ToLower()); switch(letra){ case "a": case "b": Console.WriteLine("Você digitou a ou b"); break; case "c": case "d": Console.WriteLine("Você digitou c ou d"); break; case "e": Console.WriteLine("Você digitou a letra e"); break; default: Console.WriteLine("Letra inválida."); break; } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } |
C# ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Tutorial C# - Como usar o laço while (enquanto) da linguagem C#Quantidade de visualizações: 13299 vezes |
O laço while (enquanto) é usado quando queremos repetir uma instrução ou bloco de instruções ENQUANTO uma condição for satisfatória. Veja um exemplo:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- static void Main(string[] args){ int valor = 1; while(valor <= 10){ Console.WriteLine("{0}", valor); valor++; } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } Este trecho de código conta de 1 até 10. Veja que antes de cada iteração do laço nós testamos se o valor da variável de controle é menor ou igual a 10. A iteração acontece somente se esta condição for satisfeita, o que nos mostra que um laço while pode nunca ser executado (o que aconteceria se a condição fosse falsa já na entrada). Note ainda que dentro de cada iteração nós incrementamos o valor da variável de controle. Isso é feito para que o laço não seja executado infinitamente. Veja um outro exemplo de laço while, desta vez simulando um menu de opções: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- static void Main(string[] args){ // variável que registra a opção do usuário int opcao; // lê a opção Console.Write("Informe a opção 1, 2 ou 3" + " (-1 para sair): "); // laço while que mostra as opções do menu enquanto // o valor -1 não for informado while((opcao = int.Parse(Console.ReadLine())) != -1){ switch(opcao){ case 1: Console.WriteLine("Executando a opção 1"); break; case 2: Console.WriteLine("Executando a opção 2"); break; case 3: Console.WriteLine("Executando a opção 3"); break; default: Console.WriteLine("Opção incorreta"); break; } // mostra o texto das opções novamente Console.Write("Informe a opção 1, 2 ou 3" + " (-1 para sair): "); } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } Se você é realmente iniciante em C#, notará que este exemplo é um pouco mais elaborado. Desta forma, estude-o atentamente. É uma técnica muito útil quando estamos escrevendo programas console, uma vez que a maioria deles possui um menu de opções. |
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
Java - Como testar se um ponto está dentro de um círculo em Java - Desenvolvimento de Games com Java |
Códigos Fonte |
![]() Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
![]() Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |