none
ExecuteNonQuery: la propiedad Connection no se ha inicializado. RRS feed

  • Pregunta

  • quiero saber por que me sale este error 

    mi codigo es este

    public string editar(DElemento elemento)
            {
                string rpta = "";
                SqlConnection sqlCon = new SqlConnection();
                try
                {
                    //codigo
                    sqlCon.ConnectionString = Conexion.Cn;
                    sqlCon.Open();
                    SqlCommand SqlCmd = new SqlCommand();
                    SqlCmd.CommandText = "spnuevo_editar";
                    SqlCmd.CommandType = CommandType.StoredProcedure;

                    SqlParameter ParIdelemento = new SqlParameter();
                    ParIdelemento.ParameterName = "@idelemento";
                    ParIdelemento.SqlDbType = SqlDbType.Int;
                    ParIdelemento.Value = elemento.Idelemento;
                    SqlCmd.Parameters.Add(ParIdelemento);

                    SqlParameter ParNombre = new SqlParameter();
                    ParNombre.ParameterName = "@nombre";
                    ParNombre.SqlDbType = SqlDbType.VarChar;
                    ParNombre.Size = 50;
                    ParNombre.Value = elemento.Nombre;
                    SqlCmd.Parameters.Add(ParNombre);

    domingo, 5 de junio de 2016 23:48

Respuestas

  • esther santiago,

    Precisamente porque has olvidado inicializar la propiedad Connection del objeto de tipo SqlCommand

    sqlCon.ConnectionString = Conexion.Cn;
    sqlCon.Open();
    
    SqlCommand SqlCmd = new SqlCommand();
    SqlCmd.Connection = sqlCon;
    SqlCmd.CommandText = "spnuevo_editar";
    SqlCmd.CommandType = CommandType.StoredProcedure;


    lunes, 6 de junio de 2016 0:29
  • esther santiago,

    A su vez, podrías omitir algunas líneas pasando la propiedad CommandText y la conexión al momento de instanciar un objeto de la clase SqlCommand

    sqlCon.ConnectionString = Conexion.Cn;
    sqlCon.Open();
    
    SqlCommand SqlCmd = new SqlCommand("spnuevo_editar", sqlCon);
    SqlCmd.CommandType = CommandType.StoredProcedure;

    lunes, 6 de junio de 2016 0:39
  • hola

    porque no rodenas un poco el codigo, no necesitas tantas lineas para ejecutar una consulta, puedes reducirlas

    public string editar(DElemento elemento)
    {
    	string rpta = "";
    	
    	try
    	{
    		SqlConnection sqlCon = new SqlConnection(Conexion.Cn);
    		sqlCon.Open();
    		
    		SqlCommand SqlCmd = new SqlCommand("spnuevo_editar", sqlCon);
    		SqlCmd.CommandType = CommandType.StoredProcedure;
    
    		SqlCmd.Parameters.Add("@idelemento", SqlDbType.Int).Value = elemento.Idelemento;
    		SqlCmd.Parameters.Add("@nombre", SqlDbType.VarChar).Value = elemento.Nombre;

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 6 de junio de 2016 2:00

Todas las respuestas

  • esther santiago,

    Precisamente porque has olvidado inicializar la propiedad Connection del objeto de tipo SqlCommand

    sqlCon.ConnectionString = Conexion.Cn;
    sqlCon.Open();
    
    SqlCommand SqlCmd = new SqlCommand();
    SqlCmd.Connection = sqlCon;
    SqlCmd.CommandText = "spnuevo_editar";
    SqlCmd.CommandType = CommandType.StoredProcedure;


    lunes, 6 de junio de 2016 0:29
  • esther santiago,

    A su vez, podrías omitir algunas líneas pasando la propiedad CommandText y la conexión al momento de instanciar un objeto de la clase SqlCommand

    sqlCon.ConnectionString = Conexion.Cn;
    sqlCon.Open();
    
    SqlCommand SqlCmd = new SqlCommand("spnuevo_editar", sqlCon);
    SqlCmd.CommandType = CommandType.StoredProcedure;

    lunes, 6 de junio de 2016 0:39
  • hola

    porque no rodenas un poco el codigo, no necesitas tantas lineas para ejecutar una consulta, puedes reducirlas

    public string editar(DElemento elemento)
    {
    	string rpta = "";
    	
    	try
    	{
    		SqlConnection sqlCon = new SqlConnection(Conexion.Cn);
    		sqlCon.Open();
    		
    		SqlCommand SqlCmd = new SqlCommand("spnuevo_editar", sqlCon);
    		SqlCmd.CommandType = CommandType.StoredProcedure;
    
    		SqlCmd.Parameters.Add("@idelemento", SqlDbType.Int).Value = elemento.Idelemento;
    		SqlCmd.Parameters.Add("@nombre", SqlDbType.VarChar).Value = elemento.Nombre;

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 6 de junio de 2016 2:00