none
ExecuteNonQuery: Connection property has not been initialized. RRS feed

  • Pergunta

  • Olá pessoal, sou iniciante no ramo de desenvolvimento, sou muito fraco na parte de conexão com banco de dados.

    Enfim, pesquise em vários foruns e principalmente aqui no msdn e encontrei muita coisa parecida com a que estou usando, já fiz modificações e etc...

    Mas o resultado foi sempre o mesmo.

    O código abaixo trata-se de apenas uma inserção em um banco de dados em sql server 2008 com o nome de banco teste conforme a string de conexão.

    private void btnOk_Click(object sender, EventArgs e)
            {    
                string sql = "INSERT INTO teste(nome,obs) VALUES(@nome,@obs)";
                string conexao = @"Data Source=RAMILSONPC;Initial Catalog=bancoteste;User ID=sa;Password=sasa;Pooling=False";
    
                string nome = txtNome.Text;
                string obs = txtObs.Text;
    
                using (SqlConnection conn = new SqlConnection(conexao))
                {
                    conn.Dispose();
                    conn.ConnectionString = conexao;
                    conn.Open();
                    
                    SqlCommand comand = new SqlCommand();
                    comand.CommandText = sql;
                    comand.CommandType = CommandType.Text;
                    
                    comand.Parameters.Add(new SqlParameter("@nome", nome));
                    comand.Parameters.Add(new SqlParameter("@obs", obs));
    
                    comand.ExecuteNonQuery();  //Erro dá bem aqui
    
                    MessageBox.Show("CADASTRADO...");
    
    
    
                }
    


    Aquele que puder me ajudar a melhorar esta solução e principalmente mostrar onde errei, eu agradeço e muito, pois fiquei o dia inteiro deste sábado nisso.

    Obrigado pela atenção.

     

     

    domingo, 27 de novembro de 2011 02:32

Respostas

  • Você precisa informar ao objeto command um objecto connection, no caso SqlConnection.

    Tente:

    using (SqlConnection conn = new SqlConnection(conexao))
     {
    	conn.ConnectionString = conexao;
    	
    	SqlCommand comand = new SqlCommand();
    	comand.Connection = conn; // <<< Veja
    	comand.CommandText = sql;
    	comand.CommandType = CommandType.Text;
    
    	comand.Parameters.Add(new SqlParameter("@nome", nome));
    	comand.Parameters.Add(new SqlParameter("@obs", obs));
    
    	conn.Open();
    
    	comand.ExecuteNonQuery();
    
    	MessageBox.Show("CADASTRADO...");
     }
    




    --
    Marque as respostas e ajude a melhorar a busca do fórum.
    domingo, 27 de novembro de 2011 11:21

Todas as Respostas

  • Você precisa informar ao objeto command um objecto connection, no caso SqlConnection.

    Tente:

    using (SqlConnection conn = new SqlConnection(conexao))
     {
    	conn.ConnectionString = conexao;
    	
    	SqlCommand comand = new SqlCommand();
    	comand.Connection = conn; // <<< Veja
    	comand.CommandText = sql;
    	comand.CommandType = CommandType.Text;
    
    	comand.Parameters.Add(new SqlParameter("@nome", nome));
    	comand.Parameters.Add(new SqlParameter("@obs", obs));
    
    	conn.Open();
    
    	comand.ExecuteNonQuery();
    
    	MessageBox.Show("CADASTRADO...");
     }
    




    --
    Marque as respostas e ajude a melhorar a busca do fórum.
    domingo, 27 de novembro de 2011 11:21
  • Paulo, muito obrigado, funcionou perfeitamente.

    Fiquei besta por ficar o sábado inteiro por causa de uma linha boba.... rsrs...

     

    Vlw e grande abrao.

    domingo, 27 de novembro de 2011 16:05