Hola amigos del foro aqui me tiene de nuevo molestando. tengo el siguiente problema, traigo los datos de la tabla Orden_Trabajo1, y deseo agregar una nueva columna con datos el culña me funciona bien, cuyo codigo lo muestro enseguida.
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 Orden_Trabajo1 where 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 Dt_Numero As New DataColumn
With Dt_Numero
.DataType = System.Type.GetType("System.Int16")
.ColumnName = "N_Boleta"
.AutoIncrement = False
.ReadOnly = False
.Unique = False
End With
ds.Tables("Grilla").Columns.Add(Dt_Numero)
For Each item As DataRow In ds.Tables("Grilla").Rows
item("N_Boleta") = TXTBOLETA.Text
Next
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
el problema que me sucita es al grabar, me marca bien al grabar los oprimeros regitsros, pero llega al nuevo campo y me dice que no existe y que debe ser inferior al N° de columnas, este es el codigo que utilizo para dicha operacion de grabar.
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 Cont_Boleta1 ([N_Filas], [Mano_Mobra], [Valor_Mobra], [Patente_Vehiculo], [Activo], [N_Boleta] VALUES (@p1, @p2, @p3, @p4, @p5, @p6)"
Dim contador As Integer = 0
Try
sqldel.CommandText = "delete from Cont_Boleta1 where (N_Boleta=" _
+ ds.Tables("Grilla").Rows(0).Item("N_Boleta").ToStr ing.Trim + ")"
sqldel.ExecuteNonQuery()
Catch ex As Exception
MsgBox(sqldel.CommandText)
MsgBox("error en formatear los datos")
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("Mano_Mobra")
sqladd.Parameters(2).Value = fila("Valor_Mobra")
sqladd.Parameters(3).Value = fila("Patente_Vehiculo")
sqladd.Parameters(4).Value = fila("Activo")
sqladd.Parameters(5).Value = fila("N_Boleta")
sqladd.ExecuteNonQuery()
End If
Next
End Sub
ojala que me puedan ayudar con este problema de grabar ya que dicho compra de N_Filas lo necesito si o si grabar ya que posteriormente lo voy a utilizar en otros formularios.

LinkBack URL
About LinkBacks
Citar