Array
(
)

Busca de dados no SQL Server em C Sharp

Bruno
   - 10 set 2013

Olá pessoal,
Alguém poderia me ajudar a desenvolver uma busca em C# recuperando dados do SQL Server?
A ideia é criar um TextBox e recuperar os dados informados pelo usuário.
Obrigado!

Joel Rodrigues
   - 10 set 2013

Opa, tudo bem?
Aqui no portal temos dezenas de artigos que podem lhe ajudar e na net não falta material. Qual é sua principal dificuldade?

0
|
0

Bruno
   - 11 set 2013

Olá,

Então até cheguei a procurar aqui no fórum mesmo, mas não era como estava esperando.
A ideia é criar uma busca que recupere dados do banco SQL Server na linguagem C#.

Se puder sugerir algo, agradeço!

0
|
0

Joel Rodrigues
   - 11 set 2013

Existem várias formas de fazer. Usando ADO.NET é a mais simples, eu diria.

0
|
0

Bruno
   - 11 set 2013

Se não for pedir muito, poderia dar um exemplo cara?

Não tenho conhecimento de ADO.Net.

Obrigado

0
|
0

Joel Rodrigues
   - 11 set 2013

Você tem conhecimento de C# e SQL Server? Desculpe a pergunta, mas é necessário saber para que possamos alinhar o raciocínio.

0
|
0

Bruno
   - 11 set 2013

SQL Server sim, C# o básico.

0
|
0

Joel Rodrigues
   - 11 set 2013

Então vamos lá:

1) Adicionar os seguintes namespaces :
#Código

using System.Data;
using System.Data.SqlClient;


2) Utilizar o seguinte código para fazer uma consulta e exibir em um DataGridView:
#Código
SqlConnection conexao = new SqlConnection("Data Source=SERVIDOR; Initial Catalog=BANCO; User Id=USUARIO; Password=SENHA");
SqlCommand comando = new SqlCommand("SELECT * FROM TABELA");
comando.Connection = conexao;
SqlDataAdapter adaptador = new SqlDataAdapter(comando);
DataTable tabela = new DataTable();
conexao.Open();
adaptador.Fill(tabela);
dataGridView.DataSource = tabela;
conexao.Close();


Obviamente é possível simplificar e reaproveitar o código, mas busquei demonstrar bem detalhadamente para facilitar a compreensão.
Lembre-se de adaptar as informações como o nome/endereço do servidor, o nome do banco, o usuário e senha e o nome da tabela.

0
|
0

Bruno
   - 11 set 2013

Muito obrigado cara pelas informações.

0
|
0

Joel Rodrigues
   - 11 set 2013

Disponha. Caso tenha dúvida, volte aqui e se conseguir resolver, por favor avise para finalizarmos o tópico.
Abraço.

0
|
0

Bruno
   - 11 set 2013

Certo, eu conseguindo uma solução aqui deixo comentário!

Desculpe pela repetição dos posts, acho que atualizei duas vezes e só o moderador tem a permissão de excluir, certo?

0
|
0

Joel Rodrigues
   - 11 set 2013


Citação:
Certo, eu conseguindo uma solução aqui deixo comentário!

Desculpe pela repetição dos posts, acho que atualizei duas vezes e só o moderador tem a permissão de excluir, certo?
Não se preocupe, já excluí os comentários repetidos.

0
|
0

Bruno
   - 11 set 2013

Uma dúvida que tive no momento é no evento Click do botão de busca eu posso fazer dessa forma abaixo?

#Código

protected void Button1_Click(object sender, EventArgs e)
        {
            criterio = supplier_name.Text.ToString();

            if (criterio != "")
            {
                sqlString = "SELECT * FROM exp_expenses_details Where supplier_name LIKE '" + criterio + "%'";
                this.Close();
            }
            else
            {
                MessageBox.Show("Informe o nome a procurar", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }  

0
|
0

Joel Rodrigues
   - 11 set 2013

Pode sim, já testou? Depois que você conseguir utilizar, aí pode começar a avaliar a utilização de parâmetros, pois fazer dessa forma não é seguro.
Mas primeiro tente utilizar essa forma para aprender.

0
|
0

Bruno
   - 11 set 2013

Cara eu testei aqui e saiu o resultado esperado.

Você saberia me dizer como ficaria esta consulta em vez de string fosse uma busca por um número? Neste caso, como ficaria o método acima?

Obrigado!

0
|
0

Joel Rodrigues
   - 11 set 2013

O que mudaria:
1) não precisa botar a aspa simples (afinal, é um número)
2) ao invés de passar só a variável, chamaria o método ToString() para poder concatenar com a string (numero.ToString());

0
|
0

Bruno
   - 11 set 2013

Só pra fechar o tópico e ver se entendi. Ficaria assim então:

#Código

protected void Button1_Click(object sender, EventArgs e)
        {
            criterio = ToString();

            if (criterio != "")
            {
                sqlString = "SELECT * FROM exp_expenses_details Where expense_id";
                this.Close();
            }
            else
            {
                MessageBox.Show("Informe o nome a procurar", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

0
|
0

Joel Rodrigues
   - 11 set 2013

Não, não. Veja só:
#Código

criterio = AQUI VOCÊ VAI PEGAR O VALOR NUMÉRICO DE ALGUM LUGAR
  
if (criterio != "")
{
	sqlString = "SELECT * FROM exp_expenses_details Where expense_id = "+criterio.ToString();
	this.Close();
}
else
{
	MessageBox.Show("Informe o nome a procurar", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}

0
|
0

Bruno
   - 11 set 2013

Ah sim, entendi agora.

Naquele trecho que tem que pegar o número de algum lugar, seria do número que o usuário digitar, já que o valor vai ser verificado se encontra na base de dados.
Mas como posso colocar isso no código?

criterio = TextBox4? ou algo do tipo?

0
|
0

Joel Rodrigues
   - 11 set 2013

Nesse caso você pode manter a forma como estava fazendo, creio que pegando de um textbox (textbox.Text).

0
|
0

Bruno
   - 11 set 2013

Eu acabei deixando assim criterio = textbox4.Text;

Cara, agradeço mais uma vez pela ajuda e pode fechar este tópico!

0
|
0