
22/04/2008, 01:28
|
| | Fecha de Ingreso: abril-2008
Mensajes: 19
Antigüedad: 17 años Puntos: 0 | |
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. |