Visual Basic - Como puedo mostrar datos de una bd de tipo int32 en un listviewitem

Life is soft - evento anual de software empresarial
   
Vista:

Como puedo mostrar datos de una bd de tipo int32 en un listviewitem

Publicado por Kevin Alcala Ruiz (5 intervenciones) el 23/04/2015 10:06:50
//No me deja ejecutar el programa porque me dice que no se puede convertir un tipo system.int32 al tipo string, en la base de datos el nombre y el codigocliente estan entrados como texto pero el clienteID y la compañiaID no estan como int, no se como hacer para mostrarlos en el listviewitem, perdonen pero soy nuevo en esto y la verdad que no se como solucionarlo. Muchas gracias, salu2.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data;
 
namespace PogramaNomCodi
{
 
    public partial class Form1 : Form
    {
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private string cadenaConexio = ProgramaNomCodi.Properties.Settings.Default.ConnectionString;
        private SqlConnection CN;
        private SqlCommand CMD;
        private SqlDataReader RDR;
 
        private void btnCargar_click(object sender, EventArgs e)
        {
 
            lvContactos.Items.Clear();
            CN = new SqlConnection(cadenaConexio);
            CMD = new SqlCommand("SELECT [ClienteID], [CompaniaID], [CodigoCliente], [Nombre] FROM [v_Cliente] WHERE ClienteID = 2;", CN);
            CMD.CommandType = CommandType.Text;
 
            try
            {
                CN.Open();
                RDR = CMD.ExecuteReader();
 
                while (RDR.Read())
                {
                    ListViewItem lvi = new ListViewItem();
                    lvi.Text = (string)RDR["CodigoCliente"].ToString();
                    lvi.SubItems.Add((string)RDR["Nombre"]);
                    lvi.SubItems.Add((string)RDR["CompaniaID"]);
                    lvi.SubItems.Add((string)RDR["ClienteID"]);
 
                    lvContactos.Items.Add(lvi);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                CN.Close();
            }
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
        }
        private void btnInforme_click(object sender, EventArgs e)
        {
        }
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Wilfredo Patricio Castillo

Como puedo mostrar datos de una bd de tipo int32 en un listviewitem

Solo es cosa de poner el .ToString() así como está en código, igual para el ClienteID y empresaID, es solo eso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Respuesta

Publicado por Kevin Alcala Ruiz (5 intervenciones) el 24/04/2015 11:04:17
Me sale lo mismo ya lo prove antes y nada sale igual, sigue diciendo que no lo puedo convertir , el programa se ejecuta pero a la hora de darle al boton para cargar los contactos me sale eso que no puedo convertir un objecto system.int32 a system.string TT
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Respuesta

Publicado por Khristtian (54 intervenciones) el 24/04/2015 14:41:27
Ese mensaje de error... es que muestras en el MessageBox ???
Si es así, pon el que sale en la linea donde se produce el error (Depuración paso a paso, desde un punto de interrupción)

---------------------

Verifica en la Vista de la BD que los resultados que se muestran son los deseados.

---------------------

Prueba que tu condigo funcione:
while (RDR.Read())
{
ListViewItem lvi = new ListViewItem();
lvi.Text = "Aqui CodigoCliente";
lvi.SubItems.Add("Aqui Nombre");
lvi.SubItems.Add("Aqui CompaniaID");
lvi.SubItems.Add("Aqui ClienteID");

lvContactos.Items.Add(lvi);
}

Cuando eso funciona, ya conectamos a los registros devueltos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Respuesta

Publicado por Kevin (5 intervenciones) el 27/04/2015 11:00:16
Si funciona se ve perfectamente en el listviewitem lo que me has dicho que pruebe el nombre sale en el nombre el codigocliente con codigocliente etc.. funciona todo bien eso. Que hago para solucionar el error de antes ? TT
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Respuesta

Publicado por Khristtian (54 intervenciones) el 27/04/2015 17:20:54
Ahora en cada una de las lineas donde asignas los datos de la BD, pon puntos de interrupción. Incluido en el: while (RDR.Read())


Con esto, desde el primer registro devuelto anda depurando linea a linea.

Esto es para saber si el error salta en el primer registro o en otro especifico.

Si salta en otro que no sea el primer registro, podría tratarse del tipo especifico de dato devuelto. (Por ejemplo... un valor null o algo así)

Si salta el el primer registro, podría tratarse de un error genérico a toda esa columna.

Efectúa esa depuración, y has una captura cuando se produzca el error. Pero el error en la linea, no el error que muestras en el manejo de errores.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Respuesta

Publicado por Kevin (5 intervenciones) el 28/04/2015 10:31:32
El error esta en los dos ultimos registros en el clienteID y la CompañiaID, en la BD los dos primero estan entrados como texto por eso me los muestra bien en el list view pero los dos ultimos estan entrados como numeros no se si sera por eso que el list view item no me los pilla pero te paso foto y demas.

1
2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo

Respuesta

Verifica los datos en tu tabla, y además tienes que documentarte al respecto.

Si ya tienes antes (string) para que haces el .ToString() al final?, o es uno o es otro y debes saber cuando uno y cuando el otro, pero tampoco puedes estar mezclando las cosas.

Si el tipo de dato en la tabla es string, pues tienes que recuperar string, pero si es int, debes recuperar un Int32 o un int16, dependiendo del tipo numérico que sea.

Envia una imagen al menos del select de tu tabla y cuales son esos 2 últimos registros y como están los anteriores.

Saludos cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Respuesta

Publicado por Kevin (5 intervenciones) el 29/04/2015 10:15:35
Sin-titulo

Como he dicho antes soy nuevo en esto, he mirado documentacion y demas quieto no me quedo tranquilo, es la primera vez que toco visual basic. Gracias por la ayudarme.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo

Respuesta

El reader debe ser así:


codigocliente=reader.getstring(0)
nombrecliente=reader.GetString(1)
ClienteID=reader.GetInt32(2)
CompaniaID=reader.GetInt32(3)

Los índices (0,1,2,es es la posición en la cual se hizo el select, si en el select se empezó por ( Select ClienteID From TuTabla), por ejemplo el ClienteID será tu id 0)

Espero haberte dado mas luces al respecto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de walter Hugo Alarcón Candia

Respuesta

Publicado por walter Hugo Alarcón Candia iamdevatamer@gmail.com (1 intervención) el 03/05/2015 04:23:22
Saludos..
Quisiera saber cómo puedo aser un programa en visual basic.net para selecciónar fotografías y almacenarlas en una base de datos..
Me comentaron que se puede aser utilizando un listView pero nose muy bien acerca de cómo funciona.. Nose si podrían echarme una mano.. Gracias y suerte a los del foro..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar