SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => VB .NET => Mensaje iniciado por: karolarivero en Viernes 27 de Julio de 2007, 00:04

Título: Problemas Al Enlazar Un Combobox Con Una Bd
Publicado por: karolarivero en Viernes 27 de Julio de 2007, 00:04
Hola a todos,


Tengo el siguiente codigo:


Código: Text
  1.  
  2.  CadenaConexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Ruta
  3.         ObjetoConectar = New Data.OleDb.OleDbConnection(CadenaConexion)
  4.  
  5.         Dim Sql As String = "SELECT DISTINCT NombreB from Carga"
  6.  
  7.         Try
  8.             ObjetoConectar.Open()
  9.  
  10.  
  11.                         DataAdapter = New OleDbDataAdapter(Sql, ObjetoConectar)
  12.            
  13.          
  14.             ObjetoConectar.Close()
  15.  
  16.            
  17.             DT = New DataTable()
  18.  
  19.  
  20.             DataAdapter.Fill(DT)
  21.            
  22.  
  23.             Dim i As Integer
  24.             Dim vdato As String
  25.  
  26. 'Carga del comboBox
  27.  
  28.             For i = 0 To DT.Rows.Count - 1
  29.                 vdato = DT.Rows(i).ToString
  30.                 ComboBox1.Items.Add(vdato)
  31.             Next
  32.  
  33.  
  34.         Catch ex As Exception
  35.             MessageBox.Show("ERROR al conectar o recuperar los datos:" & vbCrLf & ex.Message, "Conectar con la base", MessageBoxButtons.OK, MessageBoxIcon.Error)
  36.         Finally
  37.            ObjetoConectar.Close()
  38.         End Try
  39.  
  40.  
  41.  

Lo que quiero hacer es llenar un comboBox con una columna de la BD, pero sin que se repitan los datos en el comboBox, para ello utilizo "SELECT DISTINCT NombreB from Carga", uso un data table y en el for se pasan los datos al comboBox.

Ahora cuando ejecuto la aplicacion me aparce en el combobox el NUMERO (cantidad) de datos que deberia estar pero no aparece el nombre en vez del nombre aparece "System.Data.DataRow" repetido varias veces,me explico mejor
actualmente tengo 4 filas en la columna de donde quiero llenar el combobox y solo una de ellas se repite, por lo tanto en el combobox me aparece repetido System.Data.DataRow 3 veces.

estaba usando esta instruccion dentro del for pero me da error, pues no consigue la columna 3
Código: Text
  1.  
  2. vdato = DT.Rows(i).Item(3).ToString
  3.  
  4.  

Alguien me podria decir: ¿Que estoy haciendo mal?

Saludos y gracias!
Título: Re: Problemas Al Enlazar Un Combobox Con Una Bd
Publicado por: x_reaccion en Viernes 27 de Julio de 2007, 02:56
Hola

Si mal no estoy, la columna Nº 3 deberia ser numerada como 2 debido a que se numeran desde el 0 en adelante...

no deberia fallar si usas:

Código: Text
  1.  
  2. vdato = DT.Rows(i).Item(2).ToString()
  3.  
  4.  

pero te recomiendo que lo agas de la siguiente manera:

Código: Text
  1.  
  2. vdato  = DT.Rows(i)("ColumnName").ToString()
  3.  
  4.  
Título: Re: Problemas Al Enlazar Un Combobox Con Una Bd
Publicado por: lencho en Viernes 27 de Julio de 2007, 15:07
Código: Text
  1. cbxAlmacen.DataSource = ds.Tables[0];
  2.         cbxAlmacen.DataValueField = "ID";
  3.         cbxAlmacen.DataTextField = "DESCRIPCION";
  4.  

esto es en web, la verdad no recuerdo bien como es en WIN,
si no me equivoco creo que el datatextfield, que es el campo que queres que se muestre es DisplayMenber.

BYTE