Visual Basic.NET - Unir dos tablas

 
Vista:
sin imagen de perfil
Val: 9
Ha disminuido su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Unir dos tablas

Publicado por Pinky (110 intervenciones) el 27/10/2010 02:31:43
Hola amigos del foro mi consulta es la siguiente este es el codigo que utilizo para mostrar dos tablas en una sola grilla, pero me manda un error que dice que hay un error cerca de la palbara inner, favor de ayudarme ya que no se como hacerlo y solucionarlo, me imagino que debe ser facil sacar el error pero no se como, desde ya muchas gracias.
Sub llenar_grilla(Optional ByVal opcion As String = "")
Dim valor As String
If opcion = "" Then
If CMBPATENTE.Text = "---" Then
valor = TXTPATENTE.Text
Else
If TXTITEM.Text <> "" Then
valor = TXTITEM.Text
Else
valor = CMBPATENTE.SelectedValue
End If
End If
Else
valor = opcion
End If

Try
da = New Data.SqlClient.SqlDataAdapter("Select *,Presupuesto2.[Cant_Repuestos,Sub_Codigo,Repuestos,Valor_Repuestos] From Presupuesto1 Where Patente_Vehiculo = '" + valor.ToString + "' inner join Presupuesto2 ON Presupuesto1.Patente_Vehiculo =Presupuesto2.Patente_Vehiculo", conn)
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
Dim builder As Data.SqlClient.SqlCommandBuilder = New SqlClient.SqlCommandBuilder(da)
Dim ds As New DataSet
da.Fill(ds, "Grilla")
Dim vista As DataView = New DataView(ds.Tables("Grilla"), " ", "N_Filas asc", DataViewRowState.CurrentRows)
Grilla.DataSource = vista
Grilla.DataBind()
Session.Add("tabla", ds)
Session.Add("cmd", builder)
contador_items.Text = ds.Tables("Grilla").Rows.Count
TXTITEM.Text = contador_items.Text
Catch ex As Data.SqlClient.SqlException
MsgBox("Error:" & vbCrLf & ex.Message, MsgBoxStyle.Critical, "Sistema")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
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

RE:Unir dos tablas

Publicado por Miguel (26 intervenciones) el 27/10/2010 10:41:33
El problema es el WHERE que hay que ponerlo detrás de INNER JOIN

"SELECT *, Presupuesto2.[Cant_Repuestos, Sub_Codigo, Repuestos, Valor_Repuestos]
FROM Presupuesto1
INNER JOIN Presupuesto2 ON Presupuesto1.Patente_Vehiculo =Presupuesto2.Patente_Vehiculo
WHERE Patente_Vehiculo = '" + valor.ToString + "'"

Saludos,
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
sin imagen de perfil
Val: 9
Ha disminuido su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

RE:Unir dos tablas

Publicado por Pinky (110 intervenciones) el 28/10/2010 02:47:34
Master te comento que hice los cambios como me lo mencionaste anteriormente, pero ahora me mada otro mensaje de error.
da = New Data.SqlClient.SqlDataAdapter("Select *,Presupuesto2.[Cant_Repuestos,Sub_Codigo,Repuestos,Valor_Repuestos] FROM Presupuesto1 INNER JOIN Presupuesto2 ON Presupuesto1.Patente_Vehiculo =Presupuesto2.Patente_Vehiculo WHERE Patente_Vehiculo = '" + valor.ToString + "'", conn)
el error es el siguiente, "Error: ambiguous column name 'Patente_Vehiculo'
invalid column name 'Cant_Repuestos, Sub_Codigo, Repuestos, Valor_Repuestos'.
además te comento que el nombre de Columna Patente_Vehiculo se encuentra en ambas tablas.
Por otro lado los nombres de las columnas como son "Cant_repuestos..." se encuentran en la tabla de Presupuesto2, y todas se encuentran declaradss en la misma grilla confeccionada con tales datos, siempre se llama primero los datos de la tabla presupuesto1 y a continuación los datos de la tabla presupuesto, ojala que me puedas ayudar ya que llevo dos dias pegado en esto y sin esta información no puedo seguir avanzando, desde ya muchas gracias.
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

RE:Unir dos tablas

Publicado por Miguel (26 intervenciones) el 28/10/2010 10:08:11
Si la columna está en las 2 tablas tendrás que ponerle el nombre de la misma delante o un alias como he hecho yo, además, eso de meter entre corchetes los campos que quieres seleccionar no lo había visto nunca, delante de cada uno hay que poner siempre el nombre o alias de la tabla y nunca tendrás problemas.
Te recomiendo quitar el asterisco y que escribas los campos que necesites, rendirá mejor.

SELECT
P2.Cant_Repuestos, P2.Sub_Codigo, P2.Repuestos, P2.Valor_Repuestos
FROM Presupuesto1 P1
INNER JOIN Presupuesto2 P2 ON P1.Patente_Vehiculo =P2.Patente_Vehiculo
WHERE P1.Patente_Vehiculo = '" + valor.ToString + "'

Saludos,
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
sin imagen de perfil
Val: 9
Ha disminuido su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

RE:Unir dos tablas

Publicado por Pinky (110 intervenciones) el 03/11/2010 02:03:13
Gracias por tu ayuda Miguel se te agredece, al fin salio y funciona en un 70% de lo que se pretende, pero ahi veremos como solucionarlo.
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