CLR: .Net / Mono / Boo / Otros CLR > VB .NET

 Problemas Al Enlazar Un Combobox Con Una Bd

(1/1)

karolarivero:
Hola a todos,


Tengo el siguiente codigo:



--- Código: Text ---  CadenaConexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Ruta        ObjetoConectar = New Data.OleDb.OleDbConnection(CadenaConexion)         Dim Sql As String = "SELECT DISTINCT NombreB from Carga"         Try            ObjetoConectar.Open()                          DataAdapter = New OleDbDataAdapter(Sql, ObjetoConectar)                                  ObjetoConectar.Close()                         DT = New DataTable()              DataAdapter.Fill(DT)                        Dim i As Integer            Dim vdato As String 'Carga del comboBox             For i = 0 To DT.Rows.Count - 1                vdato = DT.Rows(i).ToString                ComboBox1.Items.Add(vdato)            Next          Catch ex As Exception            MessageBox.Show("ERROR al conectar o recuperar los datos:" & vbCrLf & ex.Message, "Conectar con la base", MessageBoxButtons.OK, MessageBoxIcon.Error)        Finally            ObjetoConectar.Close()        End Try   
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 --- vdato = DT.Rows(i).Item(3).ToString  
Alguien me podria decir: ¿Que estoy haciendo mal?

Saludos y gracias!

x_reaccion:
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 --- vdato = DT.Rows(i).Item(2).ToString()  
pero te recomiendo que lo agas de la siguiente manera:


--- Código: Text --- vdato  = DT.Rows(i)("ColumnName").ToString()  

lencho:

--- Código: Text ---cbxAlmacen.DataSource = ds.Tables[0];        cbxAlmacen.DataValueField = "ID";        cbxAlmacen.DataTextField = "DESCRIPCION"; 
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

Navegación

[0] Índice de Mensajes

Ir a la versión completa