Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/05/2008, 05:41
jaf16
 
Fecha de Ingreso: abril-2008
Mensajes: 19
Antigüedad: 16 años
Puntos: 0
Dudas con combobox

Tengo un formulario tarifas en el que al introducir la obra cargo otro combo
con el cliente, pero a la hora de guardar 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.

EL código que utilizo es el siguiente:


Private Sub TARIFAS_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Try
daObra.Fill(dsObra)
cbObra.DisplayMember = "NOMBREOBRA"
cbObra.ValueMember = "IDOBRA"
cbObra.DataSource = dsObra.Tables(0)
cbObra.Text = ""
cbClientes.Text = ""

Catch ex As Exception
Me.Text = ex.Message

End Try


End Sub



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

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

El error se produce en esta línea

dr("IdCliente") = Me.cbClientes.SelectedValue

dr("IdObra") = Me.cbObra.SelectedValue

dt.Rows.Add(dr)
daTarifa.Update(dt)
dt.AcceptChanges()
MiConexion.Close()
Me.cbClientes.Text = ""
Me.cbObra.Text = ""
Me.cbObra.Focus()
Me.txtDestino.Text = ""
Me.txtUnidad.Text = ""
Me.txtPrecio.Text = ""


End Sub


Private Sub cbObra_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cbObra.SelectedIndexChanged
MiConexion.Close()

dsClientes.Clear()
daClientes.SelectCommand.CommandText = ("SELECT * FROM CLIENTES
INNER JOIN OBRAS ON OBRAS.IDCLIENTE=CLIENTES.IDCLIENTE WHERE OBRAS.IDOBRA=" &
cbObra.SelectedValue & "")
daClientes.Fill(dsClientes)
cbClientes.DisplayMember = "NOMBRECLIENTE"
cbClientes.ValueMember = "IDCLIENTE"
cbClientes.DataSource = dsClientes.Tables(0)



End Sub

Que es lo que tengo mal?