Visual Basic - Problema con Visual Basic-SQL al usar INNER JOIN

Life is soft - evento anual de software empresarial
 
Vista:

Problema con Visual Basic-SQL al usar INNER JOIN

Publicado por Ruebn (2 intervenciones) el 06/08/2013 14:35:44
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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con Visual Basic-SQL al usar INNER JOIN

Publicado por Ruben (2 intervenciones) el 07/08/2013 18:02:10
Me auto respondo, por si alguien precisa tal informacion.

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
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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar