Você está aqui: C# ::: C# + SQL Server ::: Passos Iniciais |
Criando uma classe de conexão para suas aplicações Windows Forms, C# e SQL ServerQuantidade de visualizações: 23391 vezes |
Nesta dica vou mostrar como criar uma classe de conexão que pode ser reaproveitada em suas aplicações Windows Forms, C# e SQL Server. A vantagem de se usar uma classe de conexão e concentrar a string de conexão, os métodos de abertura e fechamento da conexão em uma só classe possibilita modificações rápidas e de pouco impacto no restante do código da aplicação. Para criar a classe de conexão siga atentamente os passos abaixo: a) Clique com o botão direito no nome do projeto no Solution Explorer, escolha a opção Add -> Class; b) Dê o nome "Conexao" para a classe e modifique-a para ficar parecida com o código abaixo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; namespace NamespaceDeSuaAplicacao{ class Conexao{ // vamos nos conectar ao SQL Server Express e à base de dados // locadora usando Windows Authentication private static string connString = @"server = .\sqlexpress; Database = locadora; integrated security = true;"; // representa a conexão com o banco private static SqlConnection conn = null; // método que permite obter a conexão public static SqlConnection obterConexao(){ // vamos criar a conexão conn = new SqlConnection(connString); // a conexão foi feita com sucesso? try{ // abre a conexão e a devolve ao chamador do método conn.Open(); } catch(SqlException sqle){ conn = null; // ops! o que aconteceu? // uma boa idéia aqui é gravar a exceção em um arquivo de log } return conn; } public static void fecharConexao(){ if(conn != null){ conn.Close(); } } } } Note que os métodos desta classe são estáticos, o que nos permite chamá-los a partir de outras classe sem a necessidade de criarmos novos objetos da classe Conexao. Veja, por exemplo, como usar os métodos obterConexao() e fecharConexao() de nossa recém-criada classe a partir do evento Click de um botão (este botão poderia estar localizado em um formulário de cadastro): ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- private void button1_Click(object sender, EventArgs e){ // vamos obter a conexão com o banco de dados SqlConnection conn = Conexao.obterConexao(); // a conexão foi efetuada com sucesso? if(conn == null){ MessageBox.Show("Não foi possível obter a conexão. Veja o log de erros."); } else{ MessageBox.Show("A conexão foi obtida com sucesso."); } // não precisamos mais da conexão? vamos fechá-la Conexao.fecharConexao(); } |
![]() |
C# ::: Coleções (Collections) ::: ArrayList |
Como retornar a quantidade de itens em uma ArrayList do C# - Como retornar o tamanho da ArrayList do C#Quantidade de visualizações: 8644 vezes |
Em algumas situações precisamos saber quantos elementos estão presentes na ArrayList do C#. Isso pode ser feito por meio da propriedade Count, que retorna um número inteiro representando a quantidade de itens atualmente na lista. Veja um exemplo de seu uso: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- using System; using System.Collections; namespace Estudos { class Program { static void Main(string[] args) { // não se esqueça // using System.Collections; // Cria o ArrayList ArrayList cidades = new ArrayList(); // Adiciona nomes de cidades cidades.Add("Goiânia"); cidades.Add("Cuiabá"); cidades.Add("Fortaleza"); cidades.Add("Curitiba"); // obtém a quantidade de elementos int quant = cidades.Count; Console.Write("A lista contém {0} itens", quant); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: A lista contém 4 itens Pressione uma tecla para sair... |
C# ::: Windows Forms ::: DataGridView |
Como retornar a linha da célula selecionada em um DataGridView do C# Windows FormsQuantidade de visualizações: 23358 vezes |
Muitas vezes precisamos obter a linha atual de uma determinada célula selecionada no DataGridView. Isso pode ser feito por meio da propriedade CurrentRow. Esta propriedade retorna um objeto da classe DataGridViewRow, que representa uma linha no DataGridView. Podemos usar esta classe para obter o índice da linha que contém a célula selecionada, percorrer todas as células de uma determinada linha, etc. Veja um trecho de código no qual usamos a propriedade CurrentRow para obter o DataGridViewRow representando a linha da célula selecionada: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- private void button3_Click(object sender, EventArgs e){ // vamos obter a linha da célula selecionada DataGridViewRow linhaAtual = dataGridView1.CurrentRow; // vamos exibir o índice da linha atual int indice = linhaAtual.Index; MessageBox.Show("O índice da linha atual é: " + indice); } |
C# ::: Dicas & Truques ::: Arquivos e Diretórios |
Como testar se um diretório existe em C# usando a propriedade Exists da classe DirectoryInfoQuantidade de visualizações: 4 vezes |
Em algumas situações nós precisamos verificar se um diretório existe em C#, talvez para ler ou gravar dados neste arquivo. Isso pode ser feito por meio da propriedade Exists da classe DirectoryInfo. Esta propriedade retorna um valor true se o diretório existir e false em caso contrário. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- using System; using System.IO; namespace Estudos { class Principal { static void Main(string[] args) { // vamos criar uma nova instância da classe DirectoryInfo DirectoryInfo dir = new DirectoryInfo(@"C:\estudos_csharp\imagens"); // vamos testar se o diretório existe if (dir.Exists) { Console.Write("Diretório existe"); } else { Console.Write("Diretório não existe"); } Console.WriteLine("\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: O diretório existe. |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como retornar o índice da primeira ocorrência de uma substring em uma string C# usando o método IndexOf() da classe StringQuantidade de visualizações: 7820 vezes |
Este trecho de código mostra como obter o índice da primeira ocorrência de uma substring em uma string. Se a substring não for encontrada, o valor -1 é retornado. Note que o método IndexOf() da classe String recebe a substring a ser pesquisada e retorna o índice de sua primeira ocorrência (começando sempre em 0). Além disso, este método diferencia maiúsculas de minúsculas. Veja o código para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- using System; namespace Estudos { class Program { static void Main(string[] args) { string frase = "Gosto de Java e C#"; // obtém o índice da primeira ocorrência int pos = frase.IndexOf("de"); if (pos != -1) { Console.WriteLine("A substring foi encontrada" + " na posição " + pos); } else { Console.WriteLine("A substring não foi encontrada"); } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: A substring foi encontrada na posição 6 |
C# ::: Datas e Horas ::: DateTime |
Como construir uma data em C# usando o objeto DateTime e fornecendo o dia, mês e ano da data desejadaQuantidade de visualizações: 7070 vezes |
Aplicações que lidam com datas e horas geralmente precisam ser capazes de criar suas próprias datas. Isso pode ser feito com o auxílio de um dos vários construtores da estrutura DateTime. Para esta dica eu mostrarei como criar uma data no formato 23/05/2008. O construtor a ser usado é:---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- DateTime(Int32, Int32, Int32) Este construtor pede valores inteiros representando o ano, mês e dia da data que queremos construir e retorna um objeto DateTime representando a data recém-construida. Veja um exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- static void Main(string[] args){ // cria um objeto DateTime para a data 10/04/2008 DateTime data = new DateTime(2008, 4, 10); // exibe o resultado System.Console.WriteLine(data.ToString("dd/MM/yyyy")); // pausa o programa Console.ReadKey(); } Note que, quando usamos este construtor, a parte do DateTime relativa às horas é inicializada como meia-noite. Tome cuidade. Este método pode lançar exceções dos tipos ArgumentOutOfRangeException e ArgumentException se os valores fornecidos para o ano, mês e dia estiverem fora das faixas permitidas. |
C# ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Apostila C# para iniciantes - Como escrever um laço for infinito em C#Quantidade de visualizações: 10147 vezes |
A linguagem C# permite a criação de laços for infinitos. Para isso, só precisamos omitir as partes de inicialização, teste de condição de parada e incremento ou decremento da variável de controle. Veja um exemplo:---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- using System; namespace Estudos{ class Program{ static void Main(string[] args) { for (; ; ) { Console.Write("Digite um número inteiro " + "(-1 para sair): "); int valor = int.Parse(Console.ReadLine()); // testa se o valor lido é -1. Se for pára // o laço if (valor == -1) break; // exibe o valor lido Console.WriteLine("Valor lido: {0}", valor); } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executarmos este código nós teremos o seguinte resultado: Digite um número inteiro (-1 para sair): 54 Valor lido: 54 Digite um número inteiro (-1 para sair): 23 Valor lido: 23 Digite um número inteiro (-1 para sair): 90 Valor lido: 90 Digite um número inteiro (-1 para sair): -1 Pressione uma tecla para sair... Veja como usamos a instrução break para sair do laço caso o valor lido seja -1. Observe ainda o uso do método Parse() da classe Int32 para converter a string digitada pelo usuário em um valor do tipo int. |
C# ::: Datas e Horas ::: DateTime |
Como adicionar ou subtrair dias de uma data em C# usando o método AddDays() da estrutura DateTimeQuantidade de visualizações: 7792 vezes |
Em algumas situações nossos códigos precisam adicionar ou subtrair dias de uma data. Isso pode ser feito com o auxílio do método AddDays() da estrutura DateTime. Este método recebe o número de dias a serem acrescidos ou substraídos da data representada pelo DateTime atual e retorna um novo DateTime com as devidas modificações. Veja um trecho de código no qual adicionamos 5 dias à data atual: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- static void Main(string[] args){ // vamos obter a data de hoje DateTime hoje = DateTime.Now; // exibe a data de hoje System.Console.WriteLine("Hoje é {0:d}", hoje); // vamos adicionar 5 dias à data de hoje DateTime data_futura = hoje.AddDays(5); // exibe a data daqui a cinco dias System.Console.WriteLine("Daqui a 5 dias será {0:d}", data_futura); // pausa o programa System.Console.Write("\nPressione qualquer tecla para sair..."); Console.ReadKey(); } É possível também subtrair dias. Para isso só precisamos fornecer um valor negativo para o método AddDays(). Veja: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- static void Main(string[] args){ // vamos obter a data de hoje DateTime hoje = DateTime.Now; // exibe a data de hoje System.Console.WriteLine("Hoje é {0:d}", hoje); // vamos subtrair 7 dias da data de hoje DateTime data_passado = hoje.AddDays(-7); // exibe a data sete dias atrás System.Console.WriteLine("Há 7 dias era {0:d}", data_passado); // pausa o programa System.Console.Write("\nPressione qualquer tecla para sair..."); Console.ReadKey(); } Lembre-se, contudo, que o método AddDays() pode disparar uma exceção do tipo ArgumentOutOfRangeException se o DateTime resultante for menor que MinValue ou maior que MaxValue. MinValue e MaxValue são os menor e maior valores que um DateTime pode representar. |
C# ::: Namespace System.Drawing ::: Graphics |
C# Windows Forms - Como passar um objeto da classe Graphics como argumento para um método e usá-lo para desenhar na superfície do formulárioQuantidade de visualizações: 5914 vezes |
Em algumas situações gostaríamos de escrever um método que recebe um objeto da classe Graphics como argumento e usar este objeto para alguma tarefa, por exemplo, desenhar na superfície do formulário. Nesta dica eu mostro como isso é possível. Comece escrevendo o seguinte método:---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // um método que recebe um objeto da classe Graphics private void desenhar(ref Graphics g){ // vamos desenhar uma linha horizontal de 300 pixels na // cor preta e espessura de 1 pixel g.DrawLine(new Pen(Color.Black, 1), new Point(20, 80), new Point(320, 80)); // vamos liberar o objeto Graphics g.Dispose(); } Note que, na definição do parâmetro do método nós usamos a palavra-chave ref. Isso foi necessário porque queremos que o objeto Graphics seja passado por referência, uma vez que o estamos liberando dentro do corpo do método com uma chamada ao método Dispose(). Veja agora como obter o objeto Graphics relacionado ao formulário atual e passá-lo ao método desenhar(): ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- private void button1_Click_1(object sender, EventArgs e){ // vamos obter o objeto Graphics relacionado ao formulário atual Graphics graphics = this.CreateGraphics(); // vamos passar o objeto Graphics para o método desenhar desenhar(ref graphics); } |
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |