Retroceder   Foros del Web > Temas generales de computación > Programación > Visual Basic

Respuesta
 
Herramientas Desplegado
Antiguo 21-abr-2008, 12:36   #1 (permalink)
jaf16 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 19
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?
jaf16 está desconectado   Responder Citando
Antiguo 22-abr-2008, 01:14   #2 (permalink)
tsunamijavip no se puede cailificar en este momento
 
Fecha de Ingreso: abril-2008
Mensajes: 20
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.
tsunamijavip está desconectado   Responder Citando
Antiguo 22-abr-2008, 01:25   #3 (permalink)
jaf16 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 19
Re: Problema con combobox y selectedvalue

Los datos concuerdan
jaf16 está desconectado   Responder Citando
Antiguo 22-abr-2008, 01:28   #4 (permalink)
jaf16 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 19
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.
jaf16 está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 02:09.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93