none
"el indice esta fuera del intervalo debe ser un valor no negativo e inferior al tamaño de la coleccion " Index RRS feed

  • Pregunta

  • alguien sabe como resolver este error pues estoy trabajando en una base de datos y no he podido solucionar este error en 2 dias, se genera en un formulario , cuando guardo toda la informacion al darle clic al boton de guardar aparece este mensaje

    PD : aunque aparece el error los datos quedan alli registrados en la base de datos

    AYUDA !!!

    lunes, 10 de julio de 2017 18:40

Respuestas

  • Hola Juan:

     Esta pregunta la estamos siguiendo en este primer post:

    ERROR COMBOBOX "No se puede convertir implícitamente el tipo 'object' en 'string'. Ya existe una conversión explícita (compruebe si le falta una conversión)

     Ahí comentas que:

    ya pude era clien.m_Ciudad_Cliente = comboBoxCiudad.SelectedText;

    pero tengo un error que es "el indice esta fuera del intervalo debe ser un valor no negativo e inferior al tamaño de la coleccion visual studio 2010" si alguien sabe como resolverlo que me diga

     Te pedí que me mostraras como es que cargas el control pero no lo has echo, de esa forma no podemos avanzar... De nada sirve que crees una nueva pregunta si no ofreces información clara sobre tu problema, recuerda que el código solo tu lo estas viendo y solo tu tienes el contexto...


    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta juand1479 lunes, 10 de julio de 2017 21:02
    lunes, 10 de julio de 2017 18:50
  • Con pasar el ratón por encima, te debería salir un popup encima, siguiendo en los desplegables veras una opcion que pone count.

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!

    • Marcado como respuesta juand1479 lunes, 10 de julio de 2017 21:01
    lunes, 10 de julio de 2017 20:27
  • sino, puedes poner justo antes de la linea donde da el error:

    int size = Lst.Count;
    y nos dices el valor de size


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!

    • Marcado como respuesta juand1479 lunes, 10 de julio de 2017 21:01
    lunes, 10 de julio de 2017 20:44
  • que creen .....

    ya encontre el error 

                    

                    Lst.Add(new ClsParametros("@Ced_Cliente", m_Ced_Cliente));
                    Lst.Add(new ClsParametros("@Nombre_Cliente", m_Nombre_Cliente));
                    Lst.Add(new ClsParametros("@Direc_Cliente", m_Direc_Cliente));
                    Lst.Add(new ClsParametros("@Ciudad_Cliente", m_Ciudad_Cliente));
                    Lst.Add(new ClsParametros("@tel_Cliente", m_tel_Cliente));

                    //pasamos parametros de salida

                    Lst.Add(new ClsParametros("@Mensaje", SqlDbType.VarChar, 100 ));

                    M.Ejecutar_SP("Spinsertar_Cliente", Lst);



                    msj = Lst[5].m_valor.ToString();

    en esta linea no iba 6 sino 5 ya que se empezaba a contar en 0 y no despues de 0 !!!

    gracias a ustedes que estuvieron allí ayudándome !!!


    lunes, 10 de julio de 2017 21:01
  • Propuesta, si quitas el Try para ver en diseño donde exactamente te da el error?
    • Marcado como respuesta juand1479 lunes, 10 de julio de 2017 21:02
    lunes, 10 de julio de 2017 19:43
  • Buenas,

    Ese mensaje dice que el indice al que intentas acceder es superior al máximo de la lista, podrías mirar la propiedad  

    .count para saber cuantos items tiene y nos comentas? Para verlo tendrás que poner un breakpoint.

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!

    • Marcado como respuesta juand1479 lunes, 10 de julio de 2017 21:01
    lunes, 10 de julio de 2017 20:07
  • Genera nuevamente el proyecto y prueba
    • Marcado como respuesta juand1479 lunes, 10 de julio de 2017 21:01
    lunes, 10 de julio de 2017 20:14

Todas las respuestas

  • Que mensaje? no se ve nada

    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!

    lunes, 10 de julio de 2017 18:43
  • "el indice esta fuera del intervalo debe ser un valor no negativo e inferior al tamaño de la coleccion " Index

    lunes, 10 de julio de 2017 18:44
  • Hola Juan:

     Esta pregunta la estamos siguiendo en este primer post:

    ERROR COMBOBOX "No se puede convertir implícitamente el tipo 'object' en 'string'. Ya existe una conversión explícita (compruebe si le falta una conversión)

     Ahí comentas que:

    ya pude era clien.m_Ciudad_Cliente = comboBoxCiudad.SelectedText;

    pero tengo un error que es "el indice esta fuera del intervalo debe ser un valor no negativo e inferior al tamaño de la coleccion visual studio 2010" si alguien sabe como resolverlo que me diga

     Te pedí que me mostraras como es que cargas el control pero no lo has echo, de esa forma no podemos avanzar... De nada sirve que crees una nueva pregunta si no ofreces información clara sobre tu problema, recuerda que el código solo tu lo estas viendo y solo tu tienes el contexto...


    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta juand1479 lunes, 10 de julio de 2017 21:02
    lunes, 10 de julio de 2017 18:50
  • el control se carga desde aqui : el codigo al hacer clic con el boton 

                String msj = "";
                if (TxtCed.Text == "" || TxtNom.Text == "" || comboBoxCiudad.Text == "" || TxtDirec.Text == "" || TxtTel.Text == "")
                {
                    MessageBox.Show("!Llene todos los campos!");
                }
                else
                {
                    try
                    {


                        clien.m_Ced_Cliente = TxtCed.Text;
                        clien.m_Nombre_Cliente = TxtNom.Text;
                        clien.m_Direc_Cliente = TxtDirec.Text;
                        clien.m_Ciudad_Cliente = comboBoxCiudad.Text;
                        clien.m_tel_Cliente = TxtTel.Text;

                        msj = clien.Spinsertar_Cliente();

                        MessageBox.Show(msj);

                    }
                    catch (Exception ex)
                    {


                        MessageBox.Show(ex.Message); 
                    }
                }
            }

    y antes de esto se utiliza una clase que lo lleva al formulario que define los datos

        

            //atributos

            public String m_Ced_Cliente { get; set; }
            public String m_Nombre_Cliente { get; set; }
            public String m_Direc_Cliente { get; set; }
            public String m_Ciudad_Cliente { get; set; }
            public String m_tel_Cliente { get; set; }

            ClsManejador M = new ClsManejador();

            //ingresar cliente

            public String Spinsertar_Cliente()
            {
                String msj="";
                List<ClsParametros> Lst = new List<ClsParametros>();

                try
                {
                    //pasamos los parametros de entrada

                    Lst.Add(new ClsParametros("@Ced_Cliente", m_Ced_Cliente));
                    Lst.Add(new ClsParametros("@Nombre_Cliente", m_Nombre_Cliente));
                    Lst.Add(new ClsParametros("@Direc_Cliente", m_Direc_Cliente));
                    Lst.Add(new ClsParametros("@Ciudad_Cliente", m_Ciudad_Cliente));
                    Lst.Add(new ClsParametros("@tel_Cliente", m_tel_Cliente));

                    //pasamos parametros de salida

                    Lst.Add(new ClsParametros("@Mensaje", SqlDbType.VarChar, 100 ));

                    M.Ejecutar_SP("Spinsertar_Cliente", Lst);

                    msj = Lst[6].m_valor.ToString();


                }
                catch (Exception ex)
                {
                    throw ex;
                }

                return msj;
            }

            //mostrar Clientes

            public DataTable Spmostrar_Cliente()
            {
                return M.listado_Clientes("Spmostrar_Cliente", null);
            }

        }
    }

    por si acaso porgo esta que es donde se definen los parametros (aunque a mi parecer no esta muy relacionada con el problema)

            //parametros
            public String m_Nombre { get; set; }
            public Object m_valor { get; set; }
            public SqlDbType m_TipoDato { get; set; }
            public Int32 m_Tamaño { get; set; }
            public ParameterDirection Direccion { get; set; }

            //constructores


            //C.Entrada
            public ClsParametros(String ObjNombre, Object ObjValor)
            {
                m_Nombre = ObjNombre;
                m_valor = ObjValor;
                Direccion = ParameterDirection.Input;

            }
            //C.Salida
            public ClsParametros(String ObjNombre, SqlDbType ObjTipoDato, Int32 ObjTamaño)
            {
                m_Nombre = ObjNombre;
                m_TipoDato = ObjTipoDato;
                m_Tamaño = ObjTamaño;
                Direccion = ParameterDirection.Output;

            }


        }
    }

    lunes, 10 de julio de 2017 19:11
  • AYUDA !!! :(
    lunes, 10 de julio de 2017 19:36
  • Tranquilo amigo, aunque no lo creas hace tres días que estos programadores estan, estamos, viendo tu problema paciencia se resolverá

    Saludos

    • Marcado como respuesta juand1479 lunes, 10 de julio de 2017 21:02
    • Desmarcado como respuesta Joyce_ACModerator martes, 11 de julio de 2017 18:30
    lunes, 10 de julio de 2017 19:39
  • Propuesta, si quitas el Try para ver en diseño donde exactamente te da el error?
    • Marcado como respuesta juand1479 lunes, 10 de julio de 2017 21:02
    lunes, 10 de julio de 2017 19:43
  • gracias por el apoyo !!
    • Marcado como respuesta juand1479 lunes, 10 de julio de 2017 21:02
    • Desmarcado como respuesta juand1479 lunes, 10 de julio de 2017 21:02
    lunes, 10 de julio de 2017 19:43
  • intentaré
    lunes, 10 de julio de 2017 19:48
  • me salio un error diferente , esta largo ... tratere de resumir su contenido pues no me deja subir imagen

    al parecer la clase cliente.cs no pertenece al proyecto que se esta depurando que justamente estoy manejando

    y sigue diciendo : Normalmente , esta condicion se da cuando el proyecto no se ha generado de nuvo antes de iniciar la sesion de depuracion , cuando el archivo de emsamblado del proyecto no esta actualizado o cuando los archivos  de codigo fuente del proyecto se han movido a una ubicacion de disco distinta en el intervalo comprendido entre la compilacion del proyecto y el inicio de la sesion de depuracion

    editar y continuar se deshabilitara en esta sesion de depuracion

    Y hay que puedo hacer ?

    lunes, 10 de julio de 2017 19:58
  • tambien quite el otro try catch que me aparecia en cliente justo donde me salió y me señala esta linea con el error anterior :

            public String Spinsertar_Cliente()
            {
                String msj="";
                List<ClsParametros> Lst = new List<ClsParametros>();

                
                    //pasamos los parametros de entrada

                    Lst.Add(new ClsParametros("@Ced_Cliente", m_Ced_Cliente));
                    Lst.Add(new ClsParametros("@Nombre_Cliente", m_Nombre_Cliente));
                    Lst.Add(new ClsParametros("@Direc_Cliente", m_Direc_Cliente));
                    Lst.Add(new ClsParametros("@Ciudad_Cliente", m_Ciudad_Cliente));
                    Lst.Add(new ClsParametros("@tel_Cliente", m_tel_Cliente));

                    //pasamos parametros de salida

                    Lst.Add(new ClsParametros("@Mensaje", SqlDbType.VarChar, 100 ));

                    M.Ejecutar_SP("Spinsertar_Cliente", Lst);

                    msj = Lst[6].m_valor.ToString();  <-- linea del error


     

                return msj;
            }

    lunes, 10 de julio de 2017 20:04
  • Buenas,

    Ese mensaje dice que el indice al que intentas acceder es superior al máximo de la lista, podrías mirar la propiedad  

    .count para saber cuantos items tiene y nos comentas? Para verlo tendrás que poner un breakpoint.

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!

    • Marcado como respuesta juand1479 lunes, 10 de julio de 2017 21:01
    lunes, 10 de julio de 2017 20:07
  • lo probare
    lunes, 10 de julio de 2017 20:12
  • Genera nuevamente el proyecto y prueba
    • Marcado como respuesta juand1479 lunes, 10 de julio de 2017 21:01
    lunes, 10 de julio de 2017 20:14
  • listo ya tengo el breakpoint , me pueden decir como colocar el .count estoy algo perdido
    lunes, 10 de julio de 2017 20:23
  • Con pasar el ratón por encima, te debería salir un popup encima, siguiendo en los desplegables veras una opcion que pone count.

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!

    • Marcado como respuesta juand1479 lunes, 10 de julio de 2017 21:01
    lunes, 10 de julio de 2017 20:27
  • no se si sera esto , dice que el numero de llamadas es 1
    lunes, 10 de julio de 2017 20:36
  • no encontre que dijera count
    lunes, 10 de julio de 2017 20:37
  • sino, puedes poner justo antes de la linea donde da el error:

    int size = Lst.Count;
    y nos dices el valor de size


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!

    • Marcado como respuesta juand1479 lunes, 10 de julio de 2017 21:01
    lunes, 10 de julio de 2017 20:44
  • me aparece que el numero de llamadas es 1
    lunes, 10 de julio de 2017 20:52
  • que creen .....

    ya encontre el error 

                    

                    Lst.Add(new ClsParametros("@Ced_Cliente", m_Ced_Cliente));
                    Lst.Add(new ClsParametros("@Nombre_Cliente", m_Nombre_Cliente));
                    Lst.Add(new ClsParametros("@Direc_Cliente", m_Direc_Cliente));
                    Lst.Add(new ClsParametros("@Ciudad_Cliente", m_Ciudad_Cliente));
                    Lst.Add(new ClsParametros("@tel_Cliente", m_tel_Cliente));

                    //pasamos parametros de salida

                    Lst.Add(new ClsParametros("@Mensaje", SqlDbType.VarChar, 100 ));

                    M.Ejecutar_SP("Spinsertar_Cliente", Lst);



                    msj = Lst[5].m_valor.ToString();

    en esta linea no iba 6 sino 5 ya que se empezaba a contar en 0 y no despues de 0 !!!

    gracias a ustedes que estuvieron allí ayudándome !!!


    lunes, 10 de julio de 2017 21:01
  • Wowww feliz por ti amigo nos leemos en otra

    Saludos!!!

    lunes, 10 de julio de 2017 21:05