Buenos días, me conecto al foro a ver si me pueden resolver una duda que llevo días para solventar, y buscando por google no he encontrado ninguna solución que me ayudara.
Estoy conectando una BD de SQL Server en VB, pero cuando en el comando incluye un INNER JOIN, no me funciona y me da error en:
---> sqldatadapter.Fill(dataset)
String del comando:
Dim str As String = ("select productos.nombreProducto, productos.distribuidorProducto, cantidad " & _
" from compras " & _
"inner Join (productos) ON compras.codproducto = productos.codproducto" & _
"where codFactura = 3")
Si cambio la instruccion a "select * from compras" por ejemplo, lo muestra sin problemas, pero es incluir el INNER JOIN y salta siempre el error (si pongo el mismo codigo en SQL Server, funciona perfectamente).
No comprendo cual puede ser el error, ¿ Tal vez deba usar alguna función diferente, o declarar las tablas del inner join de alguna forma distinta?
Muchas gracias por adelantado!
Rubén.
Me auto respondo, por si alguien precisa tal informacion.
Public Sub llenarGridviewPROCEDURE(ByRef dtg As DataGridView, ByRef codFactura As Integer)
Dim cnx As SqlClient.SqlConnection = New SqlClient.SqlConnection(con)
'ClsCon.connectionString is a class that contains the connection string
Dim cmd As SqlClient.SqlCommand = New SqlClient.SqlCommand()
If cnx.State = ConnectionState.Closed Then cnx.Open()
cmd.Connection = cnx
cmd.CommandText = "mostrarFacturaCompleta"
cmd.CommandType = CommandType.StoredProcedure
Dim prm As New SqlClient.SqlParameter
prm.ParameterName = "@codFactura"
prm.SqlDbType = SqlDbType.Int
prm.Direction = ParameterDirection.Input
prm.Value = codFactura
cmd.Parameters.Add(prm)
Dim adp As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(cmd)
Dim DataSet As DataSet = New DataSet
adp.Fill(DataSet)
If (DataSet.Tables(0).Rows.Count > 0) Then
dtg.DataSource = DataSet.Tables(0)
Else
End If
End Sub
Al final tuve que crear el PROCEDURE en SQL (mostrarFacturaCompleta)
Lo carga desde VB, crendo la conexion, el SQL command (cmd) y añade el parametro (prm -@codFactura)
y lo guarda en el DateGridView que le mandes.
Un saludo Rubén
se podrá conectar una base de datos HSQL con vb6 ?