Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/10/2011, 13:20
CEB_ROJO
 
Fecha de Ingreso: marzo-2009
Mensajes: 33
Antigüedad: 16 años
Puntos: 0
DataGridView, Eliminar, Reordenar y Guardar

Antes que nada, buenas tardes a todos. Tratare de explicar lo mas claro posible mi problema a ver quien me puede orientar.
Trabajo en VB2008, BD SQL2005. Tengo en un WinForm un DGV que carga una fila nueva ante presionar un Boton ("Siguiente") Con el siguiente codigo:

If Me.lblPediNro.Text <> "" Then
If Me.txtCantidad.Text <> "" Then
Me.DataGridView1.Rows.Add(Me.lblPediNro.Text, Me.lblNroReg.Text, Me.DateTimePicker1.Text, _
Me.cmbProveedor.Text, Me.cmbProducto.Text, Me.cmbTipoProducto.Text, Me.cmbCalidad.Text, _
Me.cmbRosca.Text, Me.cmbTipoRosca.Text, Me.txtMedida.Text, Me.cmbNorma.Text, _
Me.txtCantidad.Text, Me.txtCantIng.Text, Me.txtPrecio.Text, Me.txtDetalle.Text, Me.cmbCodProv.Text, _
Me.cmbCodProducto.Text, Me.cmbCodTipoProd.Text, Me.Id_CalidadComboBox.Text, _
Me.cmbCodRosca.Text, Me.Id_NormaComboBox.Text, Me.lblFechaActual.Text, Me.lblControlNro.Text)

Me.lblControlNro.Text = Val(Me.lblControlNro.Text) + 1
Me.txtCantidad.Text = 0
Me.txtCantIng.Text = 0
Me.GroupBox2.Enabled = True
Else
MessageBox.Show("Ingrese la Cantidad Pedida", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End If

Tambien tengo un Boton ("Eliminar Registro") que me remueve una fila mal ingresada, que a su vez REORDENA el DGV por el campo ITEM, osea que si tengo 3 filas y elimino la Nº2, la que estaba como Nº3 pasa a ser la Nº2. Esto anda bien y hace lo que realmente necesito con el siguiente código:

Me.DataGridView1.Rows.Remove(Me.DataGridView1.Curr entRow) 'Elimino la fila
Dim contador As Integer = 1
For i As Integer = 0 To Me.DataGridView1.RowCount - 1
Me.DataGridView1.Rows(i).Cells("Item").Value = contador
contador = contador + 1
Next
Me.lblNroReg.Text = Val(Me.DataGridView1.RowCount) + 1
Me.lblControlNro.Text = Val(Me.lblControlNro.Text) - 1

Ahora el problema llega a la hora de tener que guardar los datos, Boton ("Guardar") mediante.
Si no elimino ninguna fila, lo guarda perfectamente.
Si elimino la fila del DGV, pero no las REORDENO, (Logicamente quitando parte del codigo del boton Eliminar Registro), tambien lo guarda perfectamente.
Pero, Siempre hay un pero, si quiero guardar despues de haber eliminado y Reordenado me presenta el siguiente Error: La conversion de la cadena"Values('2','" en el tipo Double no es válida. (Donde ese 2 que aparece es el Nº de Pedido y que logicamente se repite en la columna Pedido del DGV.

Estos datos del DGV los guardo ARRAYLIST mediante, con elsiguiente código:

If DataGridView1.Rows.Count > 0 Then
Dim SqlString As String = ""
Dim ListSqlStrings As New ArrayList

For i As Integer = 0 To DataGridView1.Rows.Count - 1
SqlString = "INSERT INTO tbl_PedidoDeProductos
(PediNro,RegNro,FechaPedi," _
& "CantPedi,CantIng,Precio,TipoRosca,Medida,Detalle, Id_Proveedor,CodProducto," _
& "CodTipoProducto,CodCalidad,CodRosca,CodNorma,Fech aActual,Control)" _
& "VALUES ('" + DataGridView1.Rows(i).Cells("Pedido").Value + "','" _
+ DataGridView1.Rows(i).Cells("Item").Value + "','" _
+ DataGridView1.Rows(i).Cells("Fecha").Value + "','" _
+ DataGridView1.Rows(i).Cells("Cant. Ped.").Value + "','" _
+ DataGridView1.Rows(i).Cells("Cant. Ing.").Value + "','" _
+ DataGridView1.Rows(i).Cells("Precio").Value + "','" _
+ DataGridView1.Rows(i).Cells("TipoRosca").Value + "','" _
+ DataGridView1.Rows(i).Cells("Medida").Value + "','" _
+ DataGridView1.Rows(i).Cells("Detalle").Value + "','" _
+ DataGridView1.Rows(i).Cells("Id_Proveedor").Value + "','" _
+ DataGridView1.Rows(i).Cells("CodProducto").Value + "','" _
+ DataGridView1.Rows(i).Cells("CodTipoProducto").Val ue + "','" _
+ DataGridView1.Rows(i).Cells("CodCalidad").Value + "','" _
+ DataGridView1.Rows(i).Cells("CodRosca").Value + "','" _
+ DataGridView1.Rows(i).Cells("CodNorma").Value + "','" _
+ DataGridView1.Rows(i).Cells("FechaActual").Value + "','" _
+ DataGridView1.Rows(i).Cells("Control").Value + "')"

ListSqlStrings.Add(SqlString)
Next

Desde ya muchas gracias por la posible ayuda, probe de todo pero no encuentro la solución