Foros del Web » Programación para mayores de 30 ;) » .NET »

Multiples Tablas En 1 Datagrid

Estas en el tema de Multiples Tablas En 1 Datagrid en el foro de .NET en Foros del Web. Buenas, Tengo un problemilla, es que necesito ejecutar este comando T-SQL: SELECT A.ItemID, A.BarCode , B.Description , C.TaxIncludedPrice FROM [D2009].[dbo].[Item] as A,[D2009].[dbo].ItemNames as B, [D2009].[dbo].ItemSellingPrices ...
  #1 (permalink)  
Antiguo 12/02/2010, 17:04
 
Fecha de Ingreso: diciembre-2008
Mensajes: 46
Antigüedad: 13 años, 6 meses
Puntos: 1
Multiples Tablas En 1 Datagrid

Buenas,
Tengo un problemilla, es que necesito ejecutar este comando T-SQL:
SELECT A.ItemID, A.BarCode , B.Description , C.TaxIncludedPrice FROM [D2009].[dbo].[Item] as A,[D2009].[dbo].ItemNames as B, [D2009].[dbo].ItemSellingPrices as C WHERE A.ItemID = '1' AND B.ItemID = '1' AND C.ItemID = '1' AND C.PriceLineID ='1'
Y esque sólo sé este metodo, pero no me funciona:


Using cn3 As New SqlConnection(cs & catalogo)


' Instrucción Sql para seleccionar los registros de la tabla contactos
Dim sql3 As String = "SELECT A.ItemID, A.BarCode , B.Description , C.TaxIncludedPrice FROM [D2009].[dbo].[Item] as A,[D2009].[dbo].ItemNames as B, [D2009].[dbo].ItemSellingPrices as C WHERE A.ItemID LIKE '" & TextBox1.Text & "%' AND B.ItemID LIKE '" & TextBox1.Text & "%' AND C.ItemID LIKE '" & TextBox1.Text & "%' "


' Nuevo DataAdapter
Dim DataAdapter3 As New SqlDataAdapter(sql3, cn3)

' Nuevo ds
Dataset3 = New DataSet

' llenarlo
DataAdapter3.Fill(Dataset3, "A")
DataGrid1.DataSource = Dataset3.Tables("A").DefaultView

End Using

Espero ayuda.
Gracias
  #2 (permalink)  
Antiguo 12/02/2010, 19:50
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 12 años, 9 meses
Puntos: 16
Respuesta: Multiples Tablas En 1 Datagrid

Pero cual es el error que te muestra??

Que te devuelve las variables cs & catalogo?
__________________
Eduardo Peredo
Wigoin
  #3 (permalink)  
Antiguo 13/02/2010, 03:41
 
Fecha de Ingreso: diciembre-2008
Mensajes: 46
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Multiples Tablas En 1 Datagrid

Me da error de :
Se produjo una excepción de tipo 'System.OutOfMemoryException'.

Ah, se me olvidó mencionar que es en VisualStudio 2007 Basic
  #4 (permalink)  
Antiguo 13/02/2010, 05:14
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 12 años, 9 meses
Puntos: 16
Respuesta: Multiples Tablas En 1 Datagrid

Esa excepción puede ser por el like, quizá tienes muchos registros en la tabla. En todo caso podrías aplicar el like en el Datatable y no en la consulta para que no se haga tan pesado.

Más info sobre la expceción acá

Saludos.
__________________
Eduardo Peredo
Wigoin
  #5 (permalink)  
Antiguo 13/02/2010, 14:42
 
Fecha de Ingreso: diciembre-2008
Mensajes: 46
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Multiples Tablas En 1 Datagrid

Visto,
Gracias, al parecer soy yo el que está liando con los comandos sql, ya que me generá casi X10 veces de los productos que tengo.
se que no es de este subforo, pero alguien sabría decirme el pork del sql???
esque no comprendo pork me hace el X10 de los que realmente están registrados.
Un saludo
  #6 (permalink)  
Antiguo 12/03/2010, 19:26
 
Fecha de Ingreso: diciembre-2008
Mensajes: 46
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Multiples Tablas En 1 Datagrid

Alguien sabe cómo,
Son 3 Tablas:
Tabla1. Itemid, Itemname
Tabla2. Itemid, Precio1, Precio2, Precio3
Tabla3. Itemid, Stock
y claro, al parecer que por cada itemname saca los Precio1, Precio2, Precio3 y Stock + Cada Precio1 saca otros Itemname, Precio2, Precio3 y Stock + Precio2...
Así contínuamente
  #7 (permalink)  
Antiguo 13/03/2010, 11:06
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 12 años, 4 meses
Puntos: 37
Respuesta: Multiples Tablas En 1 Datagrid

Es lógica la consulta y es normal que obtengas ese resultado si un producto esta registrado con 4 precios por cada registro del producto te regresará 4 precios.
  #8 (permalink)  
Antiguo 13/03/2010, 14:59
 
Fecha de Ingreso: diciembre-2008
Mensajes: 46
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Multiples Tablas En 1 Datagrid

Entonces hay manera de hacer que aparezca sólo 1 precio por artículo omitiendo al resto? ya que realmente sólo necesito uno, pero el programa por defecto me viene 3.
Gracias
  #9 (permalink)  
Antiguo 17/03/2010, 08:48
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 12 años, 4 meses
Puntos: 37
Respuesta: Multiples Tablas En 1 Datagrid

Pues tendrias que agregar en tu where el filtro para dicho precio.
  #10 (permalink)  
Antiguo 17/03/2010, 09:50
Avatar de Porlachucha  
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 13 años, 8 meses
Puntos: 5
Respuesta: Multiples Tablas En 1 Datagrid

Debes utilizar la clausula Inner Join, de manera tal que desde la tabla que sacaras los datos, puedas ademas obtener caracteristicas como por ejemplo preciom stock, etc.

de todas formas, creo que tu tabla de precios no esta bien normada, ya que utilizas campos distintos para guardar un nuevo precio

Tabla2. Itemid, Precio1, Precio2, Precio3

que pasaria si tienes un 4to precio? modificas la tabla?

lo mejor, es dejar esto como un registro, con un indicador por ejemplo que active o desactive el precio (ejemplo una fecha)

de esta forma tienes:

tabla1 itemID, itemName
tabla2 itemID, Precio, Fecha (este campo es para diferenciar el precio de otro en un mismo item, puedes usar otro clasificador)
tabla3 itemID, Stock

tu consulta quedaria entonces definida de la siguiente manera

SELECT A.ItemID,
A.BarCode ,
B.Description ,
C.TaxIncludedPrice
FROM [D2009].[dbo].[Item] as A,
Inner Join [D2009].[dbo].ItemNames as B on A.ItemID = B.ItemID
Inner Join [D2009].[dbo].ItemSellingPrices as C A.ItemID = C.ItemID
WHERE A.ItemID = '1'
AND B.ItemID = '1'
AND C.ItemID = '1'
AND C.PriceLineID ='1'

Espero te sirva de ayuda
Slds
PLCH
__________________
Nada mas patetico que "detestar" a Intel o Microsoft o Windows o Apple ... apuesto que eres el tipico teton espinilluo y pajero que usa Linux para sentirse capo ...

Etiquetas: datagrid, multiples, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:03.