Que tal:
Pues bien, tengo el siguiente codigo el cual utiliza clases.
En la clase "clsFunciones" tengo las dos siguientes funciones:
' Funcion que carga los datos de la tabla en el data grid view
Public Function cargaDatos(ByVal dgvN As DataGridView, ByVal bs As BindingSource)
Try
' Inicializar el SqlDataAdapter indicandole el comando y el connection string
adaptador = New SqlDataAdapter("SELECT tbProductos.Id_producto, tbProductos.Producto, tbProductos.Descripcion, tbCategorias.Categoria, tbProductos.Stock, tbProductos.Precio, tbProductos.Status, tbProductos.Imagen FROM tbProductos, tbCategorias WHERE tbProductos.Id_categoria = tbCategorias.Id_categoria", cadenaConexion)
Dim SqlCommandBuilder As New SqlCommandBuilder(adaptador)
' Llenar el DataTable
Dim dt As New DataTable()
adaptador.Fill(dt)
' Enlazar el BindingSource con el datatable anterior
bs.DataSource = dt
Return bs
Catch exSql As SqlException
MsgBox(exSql.Message.ToString)
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
End Function
' Función que actualiza las celdas modificadas en el grid view
Public Function actualizaDatos(ByVal bs As BindingSource)
If Not bs.DataSource Is Nothing Then
adaptador.Update(CType(bs.DataSource, DataTable))
Return bs
End If
End Function
Cuando carga la forma realiza lo siguiente:
dgvProductos.DataSource = bs
apuntador.cargaDatos(dgvProductos, bs)
De manera que en el gridview "dgvProductos" me carga lo de la tabla "tbProductos" y la categoria de "tbCategorias"
Pero cuando realizo un cambio en el gridview y quiero actualizar con:
apuntador.actualizaDatos(bs)
Sin embargo me marca el siguiente error:
La generación SQL dinámica no es compatible con varias tablas de base.
Entonces quisiera saber de manera puedo actualizar los datos ya que por lo que veo, el sqldataadapter.update solo funciona con una tabla.
Gracias