NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!
UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI
Ola pessoal,
Na última parte deste tutorial havíamos implementado a página de inserção de categorias. Hoje vou disponibilizar o código para a inserção de Usuários, e teremos algumas novidades em relação ao ADO.net
Abra o arquivo cadUsuarios.aspx.
Clique no botão View Code para visualizar o código da página.
Adicione uma nova rotina ao seu código, chamada adicionarUsuario, juntamente com os parâmetros necessários para a execução do código. Veja abaixo:
private void adicionarUsuario(string NomeDoUsuario,string Login,string Senha,int CategoriaDeAcesso)
{
///cria a variável que servirá como instãncia para o objeto de conexão.
OleDbConnection Conexao;
///Constrói o objeto de conexão
Conexao=new OleDbConnection();
///Obtém a string de conexão que foi criada no arquivo Web.config
Conexao.ConnectionString=System.Configuration.ConfigurationSettings.
AppSettings["stringDeConexao"];
///cria a variável que servirá como instância para o objeto de comando.
OleDbCommand Comando;
///Constrói o objeto de comando.
Comando=new OleDbCommand();
///configura as propriedades para a execução do comando.
///Tipo de comando a ser executado
Comando.CommandType=CommandType.Text;
///Conexão que está sendo utilizada.
Comando.Connection=Conexao;
///Cria a string de execução do código sql
System.Text.StringBuilder strSql=new System.Text.StringBuilder();
///Monta a string de execução do código de inserção.
strSql.Append("Insert Into TbUsuarios");
strSql.Append(" (Nome,Login,Senha,CategoriaDeAcesso)Values");
strSql.Append("('" + NomeDoUsuario +"',");
strSql.Append("'" + Login +"',");
strSql.Append("'" + Senha +"',");
strSql.Append("" + CategoriaDeAcesso +")");
///Comando sql a ser executado no banco de dados.
Comando.CommandText=strSql.ToString();
///bloco de tratamento de exceções. Iremos tratar qualquer tipo de exceção que ocorrer.
try
{
///Este bloco de código será executado caso não haja exceções.
///Abre a conexão
Conexao.Open();
///Executa o comando no banco de dados.
Comando.ExecuteNonQuery();
///Envia resposta ao cliente, através de uma mensagem JavaScript.
Response.Write("<script>alert('O novo usuário foi adicionado com sucesso!')</script>");
///Limpa os campos.
txtNome.Text=string.Empty;
txtLogin.Text=string.Empty;
txtSenha.Text=string.Empty;
}
catch(Exception erro)
{
///Este bloco define o que acontecerá caso aconteça uma exceção.
Response.Write("<script>alert('Ocorreu um erro ao executar o comando!')</script>");
Response.Write(erro.Message);
}
finally
{
///Este bloco garante a execução dos códigos abaixo independente se houver exceção.
///Fecha a conexão.
Conexao.Close();
///Elimina os objetos da memória.
Conexao.Dispose();
Comando.Dispose();
}
}
Vejam que temos uma novidade no código. Ao passar a string a ser executada no banco de dados, utilizamos um novo objeto, o StringBuilder, contido no namespace System.Text.
Geralmente, utilizamos este objeto quando precisamos concatenar strings extensas, como é o caso desta. O método Append vai adicionando um novo bloco de strings no final do bloco anterior. Outra grande vantagem de sua utilização está na performance de execução. Então não esqueça, sempre que precisar utilizar um bloco de concatenação de strings, utilize o StringBuilder.
Bem, o nosso código ainda não está completo. Note que ao executar a página cadUsuarios.aspx, o controle dropCategorias estará sem valores, ou seja, não está carregando os valores que estão no banco de dados, cadastrados na tabela TbCategorias. Teremos que criar uma rotina que faça isso assim que a página carregar.
Esta nova rotina também contém novidades, mas que a explicaremos mais adiante, na próxima etapa deste tutorial.
Adicione a seguinte rotina ao seu código:
private void popularCategorias()
{
///cria a variável que servirá como instãncia para o objeto de conexão.
OleDbConnection Conexao;
///Constrói o objeto de conexão
Conexao=new OleDbConnection();
///Obtém a string de conexão que foi criada no arquivo Web.config
Conexao.ConnectionString=System.Configuration.ConfigurationSettings.
AppSettings["stringDeConexao"];
///cria a variável que servirá como instância para o objeto adaptador de dados.
OleDbDataAdapter adp;
///Constrói o objeto adaptador de dados
adp=new OleDbDataAdapter("Select IDCategoria,Nome from TbCategorias",Conexao);
///Cria o Dataset, ou o banco de dados virtual
DataSet ds=new DataSet();
///Popula o Dataset com uma tabela chamada categorias
adp.Fill(ds,"Categorias");
///Exibe o nome da categoria no controle dropCategorias
dropCategorias.DataTextField="Nome";
///Anexa o código da categoria ao controle dropCategorias
dropCategorias.DataValueField="IDCategoria";
///Indica a fonte de dados que irá popular o controle dropCategorias
dropCategorias.DataSource=ds.Tables["Categorias"];
///Renderiza o controle
dropCategorias.DataBind();
}
Ok, agora para executar realmente a inserção, devemos chamar a rotina adicionarUsuario no evento click do botão bntSalvar, sem esquecer de passar os parâmetros.
private void btnSalvar_Click(object sender, System.EventArgs e)
{
adicionarUsuario(txtNome.Text,txtLogin.Text,txtSenha.Text,Convert.ToInt32
(dropCategorias.SelectedItem.Value));
}
Para o carregamento das categorias, devemos chamar a rotina popularCategorias no evento PageLoad.
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
popularCategorias();
}
}
A instrução !Page.IsPostBack garante que o trecho em questão só será executado na primeira vez que a página carregar.
Agora vamos aos testes
Carregando a página:
Vejam que o controle dropCategorias carregou corretamente.
Agora, tente cadastrar um novo Usuário.
Clique em Salvar:
Vejam que funcionou corretamente. Desta forma, encerramos aqui mais uma parte deste tutorial. Na próxima etapa concluiremos os cadastros, abordando também alguns detalhes sobre o objeto DataSet, então, não percam.
Em caso de dúvidas, basta mandar um e-mail para lanodecastro@hotmail.com
Lano de Castro