C#
- Localizando dados em um formulário e exibindo em outro
Este artigo é para iniciantes e mostra como podemos acessar informações em um banco de dados SQL Server usando stored procedures em um formulário e exibir o resultado em outro formulário.
Abra o Visual Studio 2012 Express for desktop e clique em New Project;
A seguir selecione a linguagem Visual C# e o template Windows Forms Application e informe o nome ProcurandoExibindoDados;
![]() |
Após criar o projeto no menu PROJECT clique em Add Reference;
A seguir selecione e marque o item System.Configuration e clique em OK
![]() |
Iremos usar o namespace System.Configuration para acessar a string de conexão no arquivo App.Config.
Neste exemplo eu vou usar um banco de dados SQL Server chamado Cadastro e a tabela Clientes que possui a seguinte estrutura e dados:
![]() |
Vamos criar uma stored procedure no banco de dados clicando com o botão direito sobre o item Stored Procedure e selecionando Add New Stored Procedure;
A seguir digite o código mostrado a seguir:
![]() |
Criamos a stored procedure LocalizarPorNome que utiliza o parâmetro nome e a instrução SQL : SELECT * FROM CLIENTES WHERE NOME LIKE @NOME + '%'
No arquivo App.Config inclua a definição da string de conexão com o banco de dados Cadastro conforme mostrado a seguir:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="SqlServerCadastro" connectionString="Data Source=.\sqlexpress;Initial Catalog=Cadastro;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
|
Agora vamos incluir no formulário form1.cs que foi criado por padrão um controle Label, um controle TextBox(txtNome) e um controle Button(btnProcurar) conforme mostra o leiaute abaixo:
![]() |
Agora defina o seguinte código para este formulário:
using System;
using System.Data;
using System.Windows.Forms;
using System.Configuration;
using System.Data.SqlClient;
namespace ProcurandoExibindoDados
{
public partial class Form1 : Form
{
string strconn = ConfigurationManager.ConnectionStrings["SqlServerCadastro"].ConnectionString;
public Form1()
{
InitializeComponent();
}
private void btnProcurar_Click(object sender, EventArgs e)
{
if(string.IsNullOrEmpty(txtNome.Text))
{
MessageBox.Show("Informe o nome para localizar.", "Localizar", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
try
{
Form2 frmDetalhesClientes = new Form2();
SqlConnection sqlconn = new SqlConnection(strconn);
sqlconn.Open();
SqlCommand cmdProcuraClientes = new SqlCommand("LocalizarPorNome", sqlconn);
cmdProcuraClientes.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cmdProcuraClientes);
DataSet dsClientes = new DataSet();
da.SelectCommand.Parameters.AddWithValue("@NOME", SqlDbType.VarChar).Value = txtNome.Text.Trim();
da.Fill(dsClientes);
if (dsClientes.Tables[0].Rows.Count > 0)
{
frmDetalhesClientes.dsGetDetalhes = dsClientes;
frmDetalhesClientes.Show();
}
}
catch (Exception ex)
{
MessageBox.Show("Erro : " + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
|
Este código realiza a conexão com o banco de dados e utiliza a stored procedure LocalizarPorNome para obter as informações da tabela Clientes.
A seguir o método dsGetDetalhes do formulário form2.cs é chamado preenchendo o dataset com os valores obtidos no formulário form1.cs.
No menu PROJECT clique em Add Windows Forms e aceite o nome Form2.cs;
A seguir inclua os seguintes controles neste formulário:
![]() |
Este formulário irá apenas exibir os dados dos clientes nos controles TextBox.
A seguir digite o código abaixo neste formulário:
using System;
using System.Data;
using System.Windows.Forms;
namespace ProcurandoExibindoDados
{
public partial class Form2 : Form
{
//declara um dataset privado que armazena os detalhes
//que serão armazenados no dataset public dsGetDetalhes
private DataSet dsDetalhesClientes;
public DataSet dsGetDetalhes
{
get
{
return dsDetalhesClientes;
}
set
{
dsDetalhesClientes = value;
}
}
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
GetClientesForm1(); //chama a função
}
private void GetClientesForm1() //exibe detalhes dos clientes
{
try
{
txtID.Text = dsDetalhesClientes.Tables[0].Rows[0]["id"].ToString();
txtNome.Text = dsDetalhesClientes.Tables[0].Rows[0]["nome"].ToString();
txtEndereco.Text = dsDetalhesClientes.Tables[0].Rows[0]["endereco"].ToString();
txtTelefone.Text = dsDetalhesClientes.Tables[0].Rows[0]["telefone"].ToString();
txtEmail.Text = dsDetalhesClientes.Tables[0].Rows[0]["email"].ToString();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void btnSair_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
|
O código acima obtém os dados do dataset com as informações do cliente obtidas no formulário form1.cs e exibe o resultado nas caixas de texto do formulário form2.cs.
Executando o projeto o formulário para localizar dados é apresentado. Digite um nome e clique no botão Procurar:
![]() |
As informações serão exibidas no formulário form2.cs conforme abaixo:
![]() |
Pegue o projeto completo aqui:
ProcurandoExibindoDados.zip
Mateus 15:3
Ele (Jesus), porém, respondendo, disse-lhes: E vós, por que transgredis o mandamento de Deus por causa da vossa tradição ?Referências: