Visual Basic.NET - Repiticion de datos en grilla

 
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

Repiticion de datos en grilla

Publicado por Pinky (110 intervenciones) el 11/11/2010 01:45:47
Hola amigos del foro mi consulta es la siguiente soy un poco nuevo en esta parte de unir dos tablas, gracias a vuestra ayuda me resulta al llamar las dos tablas y me muestra los datos en una sola grilla, pero el problema es que las columnas vacias me repite los datos por ej. por lo general siempre existe mas mano de obra que repuestos, este es el código que utilizo para llamar a los datos, que utilizo actualmente:
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 * From Presupuesto1 where Patente_Vehiculo = '" + valor.ToString + "' ", conn)
da = New Data.SqlClient.SqlDataAdapter("Select P2.Cant_Repuestos,P2.Sub_Codigo,P2.Repuestos,P2.Valor_Repuestos,P1.N_Filas,P1.Mano_Mobra,P1.Valor_Mobra From Presupuesto1 P1 INNER JOIN Presupuesto2 P2 ON P1.Patente_Vehiculo = P2.Patente_Vehiculo WHERE P1.Patente_Vehiculo = '" + valor.ToString + "'", 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
ojala que me puedan decir en donde esta el error o donde podria mejorar este, para que no me repita los datos, en el P2.Cant_Repuestos,P2.Sub_Codigo..., hago mención que el P1 corresponde a la mano de obra y la P2 corresponde a los repuestos, y como mencione anteriormente hay mas filas en Mano de obra que repuestos.
Actualmente tengo dos filas de datos en mano de obra y un solo repuesto "Óptico izquierdo" y este último repuesto se repite, lo que no debe hacer, desde ya muchas gracias
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:Repiticion de datos en grilla

Publicado por Miguel (26 intervenciones) el 11/11/2010 12:26:57
Quizas deberías plantearte mostrar la consulta de otra manera (en dos Grid distintos), porque esto más que un problema de .NET es un problema de BBDD.
Si unes 2 tablas con relación M-M te va a representar un producto cartesiano, es decir, FilasTabla1 X FilasTabla2, como tienes 2 y 1 te pinta 2 filas, pero si tuvieras 3 y 2, te pintaría 6. La mejor manera es cada tabla en su grid.

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:Repiticion de datos en grilla

Publicado por Pinky (110 intervenciones) el 12/11/2010 01:27:38
Master y una consulta como lo hago para recorrer todas las filas y en donde encuentre datos repetidos esto los elimnina, favor de ayudarme 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:Repiticion de datos en grilla

Publicado por Miguel (26 intervenciones) el 12/11/2010 08:18:19
Dim dTable As DataTable=TuGrid.DataSource
For Each oRow As DataRow In dTable.Rows
'''El valor de cada columna se obtiene así:
oRow("NombreColumna")
Next

Pero esto no me parece la solución correcta a tu problema como te digo en el otro mensaje, porque puede darse que se te repitan datos de las 2 tablas a la vez y no vas a saber que borrar.

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:Repiticion de datos en grilla

Publicado por Pinky (110 intervenciones) el 12/11/2010 22:01:17
Master lo voy a probar de todas maneras los datos que voy a grabar lo haré en otra tabla que corresponde a las ordenes de trabajo, las de presupuesto solamente las utilizaba para llamar a los datos ingresados con anterioridad, ahí te cuento como me fue y nuevamente muchas gracias por tu ayuda.
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