Ahi me resulto, lo hice con SPs. pero lo deje en una funcion y en el
evento de ingreso lo llamo dentro del for,,,

Gracias por su ayuda.

Andrés



> Hola Andres,
>
> Lo de usar stored procedures o no es opcional, si preparas el comando al
> principio del proceso y lo usas repetidas veces en el insert, no creo que
> encuentres diferencias importantes en el rendimiento. Hay otras razones
> por las
> cuales puede ser aconsejable usar SPs.
>
> Incluso, podes usar parametros (Parameters de ADO.NET) aunque no uses
> stored
> procedures.
>
> Contanos como te fue, si podes.
>
> Carlos Peix
>
>> -----Original Message-----
>> From: [email protected] [mailto:[EMAIL PROTECTED] On
>> Behalf Of Andrés Guzmán O
>> Sent: Martes, 16 de Octubre de 2007 10:21 p.m.
>> To: [email protected]
>> Subject: [puntonet] Ingreso Masivo de Datos
>>
>> OK voy a probar en realidad es mejor trabajar con
>> procedimientos almacenados voy a hacerlo como me dices y te
>> comento, gracias!!!
>>
>>
>> Andrés
>> ----- Original Message -----
>> From: "Carlos Peix" <[EMAIL PROTECTED]>
>> To: <[email protected]>
>> Sent: Tuesday, October 16, 2007 6:53 PM
>> Subject: [puntonet] Ingreso Masivo de Datos
>>
>>
>> Hola Andres,
>>
>> Creo que la clave esta en el Catch que haces sin mostrar la
>> excepcion, esto
>> quiere decir que si estas teniendo una excepcion luego de
>> insertar el primer
>> registro, la ejecucion termina luego de insertarlo y nunca te
>> enteras de la
>> anomalia.
>>
>> Te propongo otra version del codigo que mandaste donde aprovecho para
>> sugerirte
>> codigo un poco mas claro (en mi opinion). Atencion, no puedo
>> escribir codigo
>> VB.NET de memoria, asi que sepan disculpar.
>>
>> ' Es mejor crear el comando antes y reutilizarlo, ademas,
>> ' es MUY recomendabe utilizar parametros.
>> Dim agregar As New SqlCommand("INSERT INTO OrdenMantencion (OMEquipo,
>> OMTipo,
>> ...) VALUES ( @Equipo, @Tipo,... )")
>>
>> ' Es mucho mejor realizar la conexión una sola vez
>> ' al principio y cerrarla al final (en el Finally).
>> conn.Open()
>> agregar.Connection = conn
>>
>> Try
>> ' Aca tambien deberias usar parametros
>> Dim da As New SqlDataAdapter("SELECT NombrePC FROM FichaEquipo WHERE
>> Sala='" & Me.DDSalasala.SelectedValue.Trim & "'", conn)
>>
>> Dim dsOM As New DataSet()
>> da.Fill(dsOM, "Equipos")
>>
>> Dim dt As DataTable
>> dt = dsOM.Tables(0)
>>
>> 'AQUI DONDE PRETENDO INGRESARLOS EN LA OTRA TABLA!
>> ' (confirmar sintaxis de For Each)
>> For Each DataRow row in dt.Rows
>> Dim equipo As String
>>
>> 'AQUI SELECCIONO EL DATO DE LA TABLA ANTERIOR PARA SER INGRESADO
>> EN LA NUEVA TABLA
>>
>> equipo = row.Item("NombrePC")
>>
>> ' No me gusta mucho la siguiente linea de codigo, yo
>> ' no accederia a elementos de la interfaz a usuario dentro
>> ' de un proceso masivo como este.
>> Me.ListBox1.Items.Add(equipo)
>>
>> agregar.Parameters["Equipo"] = equipo
>> agregar.Parameters["Tipo"] =
>> Me.DDNombreProgSala.SelectedValue.Trim
>> agregar.ExecuteNonQuery()
>> Next
>>
>> Finally
>> conn.Dispose()
>>
>> End Try
>>
>> Algunos comentarios:
>> - No utilice el Catch. Si no vas a hacer naad especifico en
>> el catch lo
>> mejor es
>> no usarlo de manera que la excepcion llegue a niveles superiores.
>> - Agregue el Finally donde debe cerrarle la conexión (con
>> llamar a Dispose
>> es
>> suficiente).
>> - Es aconsejable utilizar parametros para evitar ataques por
>> SQLInjection,
>> ademas de facilitar considerablemente el manejo de distintos
>> tipos de datos.
>>
>> Carlos Peix
>>
>> > -----Original Message-----
>> > From: [email protected] [mailto:[EMAIL PROTECTED] On
>> > Behalf Of [EMAIL PROTECTED]
>> > Sent: Martes, 16 de Octubre de 2007 05:40 p.m.
>> > To: [email protected]
>> > Subject: [puntonet] Ingreso Masivo de Datos
>> >
>> > Hola amigos tengo un problema que me tiene realmente chato,
>> > lo que necesito es traer datos desde una tabla y despues para
>> > cada uno de estos datos debo ingresarlos en otra tabla con
>> > otros datos. El codigo que tengo es el siguiente en teoria me
>> > debería funcionar, pero el problema es que de los datos que
>> > traigo de la primera tabla solo ingreso rl primer dato en
>> la segunda.
>> >
>> > Bueno aqui esta el código ojala me entiendan y me den una
>> > manito creo que el problema esta en el for pero eh probado de
>> > varias formas y no me resulta.
>> >
>> > Try
>> >
>> > 'AQUI TRAIGO LOS DATOS DE LA TABLA
>> >
>> >              Dim da As New SqlDataAdapter("SELECT NombrePC
>> > FROM FichaEquipo WHERE Sala='" &
>> > Me.DDSalasala.SelectedValue.Trim & "'", conn)
>> >
>> >              Dim dsOM As New DataSet()
>> >              da.Fill(dsOM, "Equipos")
>> >
>> >              Dim dt As DataTable
>> >              Dim dv As DataView
>> >
>> >              dt = dsOM.Tables(0)
>> >              dv = dt.DefaultView
>> >
>> >              Dim n1 As Integer = dt.Rows.Count
>> >
>> >              Dim i As Integer
>> >
>> > 'AQUI DONDE PRETENDO INGRESARLOS EN LA OTRA TABLA!
>> >
>> >              For i = 0 To (n1 - 1)
>> >                  Dim equipo As String
>> >
>> > 'AQUI SELECCIONO EL DATO DE LA TABLA ANTERIOR PARA SER
>> > INGRESADO EN LA NUEVA TABLA
>> >
>> >                  equipo = dt.Rows(i).Item("NombrePC")
>> >                  Me.ListBox1.Items.Add(equipo)
>> >
>> >                  Dim agregar As New SqlCommand("INSERT INTO
>> > OrdenMantencion (OMEquipo, OMTipo, OMSala, OMFecha, OMHora,
>> > Mantencion, Registro, DEjecucion, DTermino, HInicio,
>> > HTermino) VALUES ( '" & equipo & "','" &
>> > Me.DDNombreProgSala.SelectedValue.Trim & "','" &
>> > Me.DDSalasala.SelectedValue.Trim & "', '" &
>> > Me.TxtFechaSala.Text.Trim & "', '"
>> > & Me.TxtHoraSala.Text.Trim & "', '" &
>> > Me.TxtmantencionSala.Text.Trim & "','" &
>> > Me.TxtRegistroSala.Text.Trim & "','" & Me.TxtDESala.Text.Trim
>> > & "','" & Me.TxtDTSala.Text.Trim & "','" &
>> > Me.TxtHISala.Text.Trim & "','" & Me.TxtHTSala.Text.Trim & "' )")
>> >
>> >                  agregar.Connection = conn
>> >                  conn.Open()
>> >                  agregar.ExecuteNonQuery()
>> >
>> >              Next
>> >                  conn.Close()
>> >                  conn.Dispose()
>> >
>> >          Catch ex As Exception
>> >
>> >          End Try
>> >
>> > Agradecer cualquier comentario o ayuda gracias de antemano!
>> >
>>
>>
>>
>> __________ NOD32 2595 (20071016) Information __________
>>
>> This message was checked by NOD32 antivirus system.
>> http://www.eset.com
>>
>>
>
>
>


Soporte CFTUTEM.
[EMAIL PROTECTED], [EMAIL PROTECTED]
6711130 anexo 110

Responder a