Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Visual Basic clásico (http://www.forosdelweb.com/f69/)
-   -   Problema con combobox y selectedvalue (http://www.forosdelweb.com/f69/problema-con-combobox-selectedvalue-578351/)

jaf16 21/04/2008 12:36

Problema con combobox y selectedvalue
 
Hola a todos, tengo el siguiente problema, en un formulario utilizo varios combobox que se cargan uno dependiente de otro.
El problema lo tengo en este apartado donde cargo el cliente en función de la obra y el cliente, lo que quiero es seleccionar el idcliente, pero me da el siguiente error:

" La conversión del tipo 'DataRowView' en el tipo 'Integer' no es válida."


Private Sub cbObra_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbObra.SelectedIndexChanged
Dim idobra As String
idobra = (Me.cbObra.SelectedValue)
MsgBox(idobra)
' dsClientes.Clear()
'daClientes.SelectCommand.CommandText = ("SELECT * FROM CLIENTES INNER JOIN OBRAS ON OBRAS.IDCLIENTE=CLIENTES.IDCLIENTE WHERE OBRAS.IDOBRA=" + idobra + "")
Dim adaptador As OleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM CLIENTES INNER JOIN OBRAS ON OBRAS.IDCLIENTE=CLIENTES.IDCLIENTE WHERE OBRAS.IDOBRA=" + idobra + "", MiConexion)
Dim dataset As New DataSet
adaptador.Fill(dataset)
cbClientes.DisplayMember = "NOMBRECLIENTE"
cbClientes.ValueMember = "IDCLIENTE"
cbClientes.DataSource = dataset.Tables(0)

End Sub


Como puedo corregir esto?

tsunamijavip 22/04/2008 01:14

Re: Problema con combobox y selectedvalue
 
Mira a ver si los datos de las tablas concuerdan, no solo en la base de datos que estes usando sino del dataset designer.

jaf16 22/04/2008 01:25

Re: Problema con combobox y selectedvalue
 
Los datos concuerdan

jaf16 22/04/2008 01:28

Re: Problema con combobox y selectedvalue
 
Amplío un poco más
Tengo varias tablas relacionadas
CLIENTES: Idclientes, etc
OBRAS: IdObra,IdCliente
TARIFA:IdTarifa,IdObra

En un formulario de entrada tengo un combobox cbObras que lo lleno de la
siguiente forma:
Try
daObra.Fill(dsObra)
cbObra.DisplayMember = "NOMBREOBRA"
cbObra.ValueMember = "IDOBRA"

cbObra.DataSource = dsObra.Tables(0)

Catch ex As Exception
Me.Text = ex.Message

End Try


En el evento:
Private Sub cbObra_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cbObra.SelectedIndexChanged

Dim idobra As String
idobra = (Me.cbObra.SelectedValue)
MsgBox(idobra)
dsClientes.Clear()
daClientes.SelectCommand.CommandText = ("SELECT * FROM CLIENTES
INNER JOIN OBRAS ON OBRAS.IDCLIENTE=CLIENTES.IDCLIENTE WHERE OBRAS.IDOBRA=" +
idobra + "")
daClientes.Fill(dsClientes)
cbClientes.DisplayMember = "NOMBRECLIENTE"
cbClientes.ValueMember = "IDCLIENTE"
cbClientes.DataSource = dsClientes.Tables(0)




End Sub
lleno el segundo combobox en función del primero, hasta aquí todo bien, pero
cuando quiero actualizar la base de datos access con el IdCliente ,de esta
forma:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
' Dim sqlString As String
' sqlString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=c:\FACTURACION\FACTURACION.MDB"
' Dim MiConexion As OleDbConnection
' MiConexion = New OleDbConnection(sqlString)
' MiConexion.Open()
Dim dsClientes As New DataSet
Dim daClientes As New OleDbDataAdapter("SELECT * FROM CLIENTES",
MiConexion)
Dim dsTarifa As New DataSet
Dim daTarifa As New OleDbDataAdapter("SELECT * FROM
TARIFAPROVEEDOR", MiConexion)
Dim daObra As New OleDbDataAdapter("SELECT * FROM OBRAS", MiConexion)
Dim dsObra As New DataSet

Dim cmdBuilderDAD As New OleDbCommandBuilder(daTarifa)
Dim dt As New DataTable
daTarifa.Fill(dt)
Dim dr As DataRow = dt.NewRow()
dr("Descripcion") = Me.txtDestino.Text
dr("Unidad") = Me.txtUnidad.Text
dr("Precio") = Me.txtPrecio.Text
dr("Descripcion") = Me.txtDestino.Text
dr("Unidad") = Me.txtUnidad.Text
dr("Precio") = Me.txtPrecio.Text
dr("IdCliente") = cbClientes.SelectedValue
dt.Rows.Add(dr)
daTarifa.Update(dt)
dt.AcceptChanges()
MiConexion.Close()
end sub

me da el siguiente error:
No se puede convertir un objeto de tipo 'System.Data.DataRowView' al tipo
'System.IConvertible'.No se puede almacenar <System.Data.DataRowView> en la
columna IdCliente. El tipo esperado es Int32.

He probado también lo siguiente:

dr("IdCliente")= Cstr(me.cbClientes.SelectedValue) y me da este otro error
La conversión del tipo 'DataRowView' en el tipo 'String' no es válida.

fercho0609 07/10/2008 09:14

Re: Problema con combobox y selectedvalue
 
Hola

les dire que soy nuevo en le foro.....

Haber si me ayudan...

Yo tengo el mismo problema ...

Estoy programando en c#.net ....

Se que el error esta en el SelectedIndexChange del combo1... creo que no se carga los datos en el momento de iniciar la aplicación ..para poder enviar los parámetros al combo2.... .

Alguien me puede ayudar con la solución

Saludos


La zona horaria es GMT -6. Ahora son las 22:06.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.