Tecnologia de Programação Bruno C. de Paula BD em .Net: Conexão com SQL Server 1º Semestre 2009 > PUCPR > BSI Resumo da aula O objetivo de hoje é iniciar o trabalho com Banco de Dados dentro da plataforma .Net; Vamos começar com a criação de um banco de dados, conexão de um programa com o banco de dados e execução de comandos no banco; Hoje vamos trabalhar com a conexão com o BD “no braço” 31/05/2017 3 Nas aulas posteriores vamos usar ferramentas RAD para agilizar o desenvolvimento 31/05/2017 4 SGBDs que trabalharemos SQL Server Express: – http://www.microsoft.com/express/sq l/default.aspx – Gratuito; – Pode ser usado comercialmente. Depois: Oracle Express: – http://www.oracle.com/technology/pr oducts/database/xe/index.html 31/05/2017 5 SqlConnection: estrada; SqlCommand: carro na estrada;; Resumo de acesso ao BD Comandos Insert, Update, Delete 1) Criar um BD; 2) Criar uma tabela; 3) Criar a interface de acesso; 4) Abrir uma conexão com o SGBD (SqlConnection); 5) Criar um comando (SqlCommand); 6) Enviar o comando ao SGBD (ExecuteNonQuery); 7) Obter o resultado: número de linhas afetadas; 8) Fechar a conexão. Resumo de acesso ao BD Comando Select 1) Criar um BD; 2) Criar uma tabela; 3) Criar a interface de acesso; 4) Abrir uma conexão com o SGBD (SqlConnection); 5) Criar um comando (SqlCommand); 6) Enviar o comando ao SGBD (ExecuteReader); 7) Obter um SqlDataReader que representa o resultado; 8) Percorrer o SqlDataReader com o método Read; 9) Fechar a conexão. Passo a passo Enviando comandos SQL do C# para o SGBD Na PUCPR o SQL Server Express deve ser iniciado manualmente! Executar o programa services.msc; Iniciar o serviço SQLEXPRESS. 31/05/2017 10 Criação de um novo banco de dados (VS 2008 Express) Menu Tools > Connect to DataBase 31/05/2017 11 Criação de um novo banco de dados (VS 2008 Express) Selecionar a opção arquivo de BD; 31/05/2017 12 Criação de um novo banco de dados (VS 2008 Express) Escolher a localização do BD; 31/05/2017 13 31/05/2017 14 Explorar os databases disponíveis Menu View > Other Windows > Database Explorer 31/05/2017 15 Explorar os databases disponíveis 31/05/2017 16 Criar uma tabela 31/05/2017 17 Criar uma tabela Criar os campos da tabela: id e nome; 31/05/2017 18 Criar uma tabela Escolher id como chave primária. 31/05/2017 19 Criar uma tabela Salvar a tabela criada. 31/05/2017 20 Criar uma tabela Escolher o nome da tabela; 31/05/2017 21 Configurar a tabela 31/05/2017 22 Configurar a tabela Escolher id como campo autoincremento; 31/05/2017 23 Executando consultas 31/05/2017 24 Executando consultas SELECT * FROM Pessoa; INSERT INTO Pessoa (nome) VALUES ('Jamanta'); SELECT * From Pessoa; 31/05/2017 25 31/05/2017 26 31/05/2017 27 31/05/2017 28 Criar um projeto para acessar o banco de dados File > New Project. 31/05/2017 29 Criar um novo projeto 31/05/2017 30 Criar a interface Caixa de texto: textBoxNome; Caixa de Texto: textBoxResultado; Botão: buttonNovo; Botão: buttonListar; 31/05/2017 31 Criar a conexão com o banco de dados A conexão é uma estrada entre o aplicativo e o SGBD; 31/05/2017 32 O String de Conexão (Connection String) Indica: – Tipo de BD; – Caminho do Banco; – Login e Senha; – Configurações de Acesso; Específico para cada SGBD; Connection String para o SQL Server Express Altere o caminho do BD no destaque; Data Source=.\\SQLEXPRESS;AttachDbFilena me=C:\\Temp\\BDTeste.MDF;Integr ated Security=True; Connect Timeout=30;User Instance=True Criar uma instância de conexão A variável conn representa a conexão; SqlConnection conn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilena me=C:\\Temp\\BDTeste.MDF;Integrate d Security=True; Connect Timeout=30;User Instance=True"); Abrir a conexão Estabelecer, efetivamente, a conexão via rede ou sistema de arquivos; conn.Open(); Preparar o comando SQL SqlCommand SqlCommand cmd = new SqlCommand(“SQL”, conn); Preparar o comando SQL cmd representa um comando SQL que pode ser chamado diversas vezes; SqlCommand cmd = new SqlCommand("Insert into Pessoa(nome) values ('"+textBoxNome.Text+"')", conn); Executar o comando SQL O retorno do método ExecuteNonQuery é o número de registros afetados; int num = cmd.ExecuteNonQuery(); Fechamento da conexão Liberação de recursos; conn.Close(); Código da Inserção SqlConnection conn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Tem p\\BDTeste.MDF;Integrated Security=True; Connect Timeout=30;User Instance=True"); conn.Open(); SqlCommand cmd = new SqlCommand("Insert into Pessoa(nome) values ('"+textBoxNome.Text+"')", conn); int num = cmd.ExecuteNonQuery(); MessageBox.Show("Registros afetados:" + num.ToString()); conn.Close(); Código da Listagem SqlConnection conn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Temp\\BDTeste .MDF;Integrated Security=True; Connect Timeout=30;User Instance=True"); conn.Open(); SqlCommand cmd = new SqlCommand("SELECT * FROM Pessoa", conn); SqlDataReader dr = cmd.ExecuteReader(); textBoxResultado.Text = ""; while (dr.Read()) { – textBoxResultado.Text += dr["nome"].ToString().Trim() + Environment.NewLine; } conn.Close(); O que vem pela frente? +Banco de Dados (2o bimestre). Web Services (2o bimestre); 31/05/2017 43