• Lunes 23 de Diciembre de 2024, 09:47

Autor Tema:  Problemas Al Enlazar Un Combobox Con Una Bd  (Leído 1413 veces)

karolarivero

  • Miembro activo
  • **
  • Mensajes: 25
    • Ver Perfil
Problemas Al Enlazar Un Combobox Con Una Bd
« en: Viernes 27 de Julio de 2007, 00:04 »
0
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!
MCRS

x_reaccion

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: Problemas Al Enlazar Un Combobox Con Una Bd
« Respuesta #1 en: Viernes 27 de Julio de 2007, 02:56 »
0
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.  
u.u no quiero cumplir 20 T_T

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Problemas Al Enlazar Un Combobox Con Una Bd
« Respuesta #2 en: Viernes 27 de Julio de 2007, 15:07 »
0
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
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"