Consulta en Grid View
Publicado por Hector (110 intervenciones) el 09/08/2018 00:13:18
Hola amigos del foro mi sonulta es la siguiente poseo una base de datos con varias tablas de las cuales una en particular que se llama Ajuste2 tiene 24 item, de los cuales solo escogí 8 a través de una vista, dicha vista la llame consulta2, y al llamar los datos los muestra los 8 que escogí anteriormente, hasta aí todo Ok. pero al grabar la nueva grilla con los nuevos datos en la tabla Orden_Compra1, me dice que el item Nº 8 se encuentra fuera de rango.
he aquí el código que utilizo para llamar a los datos el cual funciona Ok.
He aquí el Código que utilizo para grabar los datos en la Grilla
Ojala que me puedan ayudar amigos ya que estoy un poco frustrado, primera vez que me pasa esto y no hay caso, al final lo que trate de hacer es llevar los mismos campos de la tabla ajuste2 a Orden_Compra1, pero ni con eso siempre me manda el mensaje de fuera de intervalo, además adjunte pantallazos para que vean los mensajes.
he aquí el código que utilizo para llamar a los datos el cual funciona Ok.
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
33
34
35
36
Sub llenar_grilla(Optional ByVal opcion As String = "")
Dim valor As String
If opcion = "" Then
If CMBSINIESTRO.Text = "---" Then
valor = TXTITEM.Text
Else
If TXTITEM.Text <> "" Then
valor = TXTITEM.Text
Else
valor = CMBSINIESTRO.SelectedValue
End If
End If
Else
valor = opcion
End If
Try
da = New Data.SqlClient.SqlDataAdapter("Select * From Consulta2 where Siniestro = '" + 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 + 1
TXTITEM.Text = contador_items.Text
Catch ex As Data.SqlClient.SqlException
Dim script As String = String.Format("alert('{0}');", ex.Message)
ScriptManager.RegisterStartupScript(Me, GetType(Page), "Datos mal ingresados", script, True)
Catch ex As Exception
Dim script As String = String.Format("alert('{0}');", ex.Message)
ScriptManager.RegisterStartupScript(Me, GetType(Page), "Información Incorrecta", script, True)
End Try
End Sub
He aquí el Código que utilizo para grabar los datos en la Grilla
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
33
34
35
36
Sub Graba()
Dim ds As DataSet
ds = Session("tabla")
Dim builder As SqlCommandBuilder
builder = Session("cmd")
Dim sqladd As New SqlCommand
sqladd = builder.GetInsertCommand()
sqladd.Connection = conn
Dim sqlmod As New SqlCommand
sqlmod.Connection = conn
Dim sqldel As New SqlCommand
sqldel.Connection = conn
sqladd.CommandText = "insert into Orden_Compra1 ([N_Filas], [Cantidad], [Repuestos], [Precio_Total], [Siniestro], [Patente_Vehiculo], [Activo], [N_Cotizacion], [Nombre_Proveedor3]) VALUES (@p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9)"
Try
sqldel.CommandText = "delete from Orden_Compra1 where (Siniestro=" _
+ ds.Tables("Grilla").Rows(0).Item("Siniestro").ToString.Trim + ")"
sqldel.ExecuteNonQuery()
Catch ex As Exception
Dim script As String = String.Format("alert('{0}');", ex.Message)
ScriptManager.RegisterStartupScript(Me, GetType(Page), "Información Incorrecta", script, True)
End Try
For Each fila As DataRow In ds.Tables("Grilla").Rows
If Not fila.RowState = DataRowState.Deleted Then
sqladd.Parameters(0).Value = fila("N_Filas")
sqladd.Parameters(1).Value = fila("Cantidad")
sqladd.Parameters(2).Value = fila("Repuestos")
sqladd.Parameters(3).Value = fila("Precio_Total")
sqladd.Parameters(4).Value = fila("Siniestro")
sqladd.Parameters(5).Value = fila("Patente_Vehiculo")
sqladd.Parameters(6).Value = fila("Activo")
sqladd.Parameters(7).Value = fila("N_Cotizacion")
sqladd.Parameters(8).Value = fila("Nombre_Proveedor3")
sqladd.ExecuteNonQuery()
End If
Next
End Sub
Valora esta pregunta
0