none
Problemas com um dataGrid RRS feed

  • Pergunta

  • Estou a iniciar os estudos com a linguagem C#, em um dos exercícios estou a montar um pequeno programa de cadastro, até a parte do cadastro no Banco de Dados tudo ficou OK, o problema foi quando tentei fazer uma tabela ser preenchida com os dados do Banco, usei um dataGrid o erro é esse: 

    Fill: Propriedade SelectCommand.Connection não foi inicializada.

    Ó código é esse e em negrito a parte onde o Visual Studio aponta o erro.

    Desde de já agradeço a ajuda....

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    using System.Data.OleDb;


    namespace MercadoEstudo
    {
        public partial class CadCliente : Form
        {
            
            private string _strConn = @"Data Source=DESKTOP-LL0RU5G;Initial Catalog=MERCADO;Integrated Security=True";
            SqlConnection objconect = null;
            SqlCommand objCommand = null;

            public CadCliente()
            {
                InitializeComponent();
                
            }

            private void btvoltar_Click(object sender, EventArgs e)
            {
                Form1 vorte = new Form1();
                vorte.Show();
                this.Visible = false;
            }

            private void limpar()
            {

                txtcliente.Clear();
                maskcpf.Clear();
                masktel.Clear();
                maskcep.Clear();
            }

            public void carregardados()
        {
           

            objconect = new SqlConnection(_strConn);
            objCommand = new SqlCommand();
            string strSQL = "SELECT * FROM CLIENTE";
            try
            {

                
                SqlDataAdapter objAdp = new SqlDataAdapter(objCommand);
                DataTable dtLista = new DataTable();
                objAdp.Fill(dtLista);
                dgDados.DataSource = dtLista;
                MessageBox.Show("Conectado  com o Banco de Dados");

            }
            catch (SqlException ex)
            {
                MessageBox.Show("Erro ao se conectar com o Banco de Dados");
            }
            





        }

            private void btcadastro_Click(object sender, EventArgs e)
            {
                SqlConnection SqlCon = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MERCADO;Data Source=DESKTOP-LL0RU5G");
                SqlCommand comand = new SqlCommand("INSERT INTO CLIENTE (NMCLIENTE,CPFCLIENTE,TELCLIENTE,CEPCLIENTE) VALUES (@NOME, @CPF, @TEL, @CEP) ", SqlCon);
       

                comand.Parameters.Add("@NOME", SqlDbType.VarChar).Value = txtcliente.Text;
                comand.Parameters.Add("@CPF", SqlDbType.VarChar).Value = (maskcpf.Text);
                comand.Parameters.Add("@TEL", SqlDbType.VarChar).Value = (masktel.Text);
                comand.Parameters.Add("@CEP", SqlDbType.VarChar).Value = (maskcep.Text);
                
                
               
                try
                {
                    SqlCon.Open();
                    comand.ExecuteNonQuery();
                    MessageBox.Show("Dados Cadastrados");
                    limpar();

                }

                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);

                }
                finally
                {
                    SqlCon.Close();
                }

            }

            private void btlimpar_Click(object sender, EventArgs e)
            {
                limpar();

            }

            private void button1_Click(object sender, EventArgs e)
            {
                carregardados();
            }
        }
    }

    segunda-feira, 10 de julho de 2017 02:24

Respostas

  • Lucas,

    A mensagem de erro já deixa claro que não informou qual objeto Connection o SqlCommand deve utilizar. Faça assim:

    public void carregardados()
        {
           
    
            objconect = new SqlConnection(_strConn);
            objCommand = new SqlCommand();
    
            // FALTAVA ESSA LINHA ABAIXO
            objCommand.Connection = objconect;
    
            string strSQL = "SELECT * FROM CLIENTE";
            try
            {
    
                
                SqlDataAdapter objAdp = new SqlDataAdapter(objCommand);
                DataTable dtLista = new DataTable();
                objAdp.Fill(dtLista);
                dgDados.DataSource = dtLista;
                MessageBox.Show("Conectado  com o Banco de Dados");
    
            }
            catch (SqlException ex)
            {
                MessageBox.Show("Erro ao se conectar com o Banco de Dados");
            }
            
    
    
    
    
    
        }


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    segunda-feira, 10 de julho de 2017 12:00

Todas as Respostas

  • Lucas,

    A mensagem de erro já deixa claro que não informou qual objeto Connection o SqlCommand deve utilizar. Faça assim:

    public void carregardados()
        {
           
    
            objconect = new SqlConnection(_strConn);
            objCommand = new SqlCommand();
    
            // FALTAVA ESSA LINHA ABAIXO
            objCommand.Connection = objconect;
    
            string strSQL = "SELECT * FROM CLIENTE";
            try
            {
    
                
                SqlDataAdapter objAdp = new SqlDataAdapter(objCommand);
                DataTable dtLista = new DataTable();
                objAdp.Fill(dtLista);
                dgDados.DataSource = dtLista;
                MessageBox.Show("Conectado  com o Banco de Dados");
    
            }
            catch (SqlException ex)
            {
                MessageBox.Show("Erro ao se conectar com o Banco de Dados");
            }
            
    
    
    
    
    
        }


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    segunda-feira, 10 de julho de 2017 12:00
  • Bom dia,

    Por falta de retorno, essa thread está sendo encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,


    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 17 de julho de 2017 13:01
    Moderador