Ir ao conteúdo
  • Cadastre-se
NitaPikachu

C# Erro no programa, dificuldade em pesquisa dos dados

Recommended Posts

Alguém me consegue corrigir o erro?

 

Eu estou a tentar inserir os dados  e quero que, utilizando um textbox onde procurar, se insere o nome e ao clicar no  botão de pesquisa Pesquisa_Click  odemos visualizar todos osd dados desse registo dentro da listbox ListBox1.

 

Estou a trabalhar com o visual studio.

Obrigada.

 

namespace Naturologia
{

    public partial class AdicionarPaciente : Window

    {
        SqlConnection sqlconn = new SqlConnection(@"Data Source=VOYAGER1; Initial Catalog=Naturologia; Integrated Security=True");
        SqlCommand comando = new SqlCommand();
        SqlDataReader dr;
   

        public AdicionarPaciente()
        {
            InitializeComponent();
        }

    

        private void Guardar_Click(object sender, RoutedEventArgs e)
        {
            if (nome.Text !="" & contacto.Text !="") {
                sqlconn.Open();
                comando = new SqlCommand();
                comando.Connection = sqlconn;
                comando.CommandText = "Insert into paciente(nome, idade, contacto, nota, sexo) values ('" + nome + "', '" + idade.Text + "', '" + contacto + "', '" + notaP.Text + "', '" + sexop.Text + "')";
                comando.ExecuteNonQuery();
                MessageBox.Show("Paciente adicionado com sucesso");
                sqlconn.Close();

                lista();

                nome.Text = "";
                notaP.Text = "";
                idade.Text = "";
                sexop.Text = "";
                contacto.Text = "";
            }
        }

        private void Binicio_Click(object sender, RoutedEventArgs e)
        {
            paginadoc janela = new paginadoc();
            janela.Show();
            this.Hide();
            this.Close();
        }

        private void Bagenda_Click(object sender, RoutedEventArgs e)
        {
            Agenda janela = new Agenda();
            janela.Show();
            this.Hide();
            this.Close();
        }

        private void Bnotas_Click(object sender, RoutedEventArgs e)
        {
            Notas janela = new Notas();
            janela.Show();
            this.Hide();
            this.Close();
        }

        private void Pacientes_Click(object sender, RoutedEventArgs e)
        {
            Pacientes janela = new Pacientes();
            janela.Show();
            this.Hide();
            this.Close();
        }

        private void Bpacientes_Click(object sender, RoutedEventArgs e)
        {
            AdicionarNotas janela = new AdicionarNotas();
            janela.Show();
            this.Hide();
            this.Close();
        }

        private void Update_Click(object sender, RoutedEventArgs e)
        {

        }

        private void Eliminar_Click(object sender, RoutedEventArgs e)
        {

        }

   
  


    private void lista()
        {
            
            ListBox1.Items.Clear();

                sqlconn.Open();
                comando.CommandText = "use Naturologia; Select* From paciente where nome like '%procurar%'; ";
            dr = comando.ExecuteReader();

                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        ListBox1.Items.Add(dr);
                    }
                }
                sqlconn.Close();
          
        }

        private void ListBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            
        }


        private void Pesquisa_Click(object sender, RoutedEventArgs e)
        {
            comando.Connection = sqlconn;
            lista();
        }
    }
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

É meio difícil ajudar quando você não diz qual o problema nem em qual linha ele ocorre, mas eu pude ver alguns problemas em seu código

  1. Você não deve colocar parâmetros da query nela mesma, já que isso irá abrir portas para SQL Injection seja ele não intencional ou intencional, saiba mais aqui
  2. Na query no método listar você provavelmente não precisa daquele use, já que você já especificou na conexão.
  3. Existe um erro de syntax na mesma query que eu citei anteriormente, já que está escrito select* mas é essencial que o * esteja separado do select!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×