Cargar datos de datatable a una tabla sql(sin tener que hacerlo fi

22/09/2006 - 17:49 por Diego | Informe spam
Amigos necesito caragar todos los valores de un datatable, auqnue en estos
momentos lo hago fila por fila quiero que esto se cargue diferente, que sean
todoooo los datos de un saque como diriamos.osea todo lo que tengo en el
datatable se cargue a la tabla.(sin hacerlo fila por fila)
Alguien esta haciendo esto o sabe como lo puedo hacer ...????
Agradezco de antemano las respuestas y sugerencias

Muchas Gracias
Saludos Diego

Preguntas similare

Leer las respuestas

#6 Jesús López
23/09/2006 - 15:01 | Informe spam
En el caso de que el datatable tenga la misma estructura que la tabla de la
base de datos. Con el siguiente método sería suficiente:

Public Sub ImportDataTable( _
ByVal DataTable As DataTable, _
ByVal ServerTableName As String, _
ByVal SqlConnectionString As String _
)

Using cn As New SqlConnection(SqlConnectionString), _
bcp As New SqlBulkCopy(cn, SqlBulkCopyOptions.TableLock, Nothing)

cn.Open()
bcp.DestinationTableName = ServerTableName
bcp.WriteToServer(DataTable)

End Using
End Sub

Si tienen diference estructura, entonces tendrías que rellenar la collección
ColumnMappings del objeto SqlBuldCopy.

En cualquier caso la tabla debe existir en la base de datos antes de
realizar la importación.

Saludos:

Jesús López



"Diego" escribió en el mensaje
news:
Y como utilizo ,, eso me puedes dar un ejemplo

Muchas gracias de antemano

Saludos
Diego Roman

"Jesús López" wrote:

Si lo que quieres es insertar todos los registros de un DataTable en una
tabla de una base de datos de SQL Server, lo más eficiente es usar
SqlBulkCopy.

Saludos:

Jesús López



"Diego" escribió en el mensaje
news:
> Gracias amigo , pero lo que necesito es saber como puedo introducir
> todos
> los
> datos de un datatable a una tabla , sin tener que hacer el insert valor
> por
> valor, que todos los valores que tengo en el datatable me los pase a
> las
> tabla, y asi no tener que hacer esto valor por valor ,,,,,
>
> Gracias espero su ayuda
> Diego
>
> "doliveras" wrote:
>
>> Si lo que quieres es insertar, actualizar o eliminar todas las fila de
>> un DataTable en la Tabla correspondiente de la base de datos, el
>> método para eso es usar la función Update() del objecto
>> SQLDataAdapter en caso de ser SQL Server, o el DataAdapter de tu base
>> de datos ODBC, Oracle o lo que sea.
>>
>> Un SqlDataAdapter, en combinación con un CommandBuilder y un DataSet
>> te permite generar las sentencias Insert, UPdate y Delete a partir de
>> un SELECT, de esta forma puedes actualizar todas las fila de una Tabla
>> de la base de datos partiendo de lo que tengas guardado en un DataSet
>> y
>> una consulta SQL.
>>
>> Podrás encontrar un ejemplo práctico en esta dirección:
>> http://support.microsoft.com/?scid=kb;es;308055
>>
>>
>>
>> Diego wrote:
>> > Amigos necesito caragar todos los valores de un datatable, auqnue en
>> > estos
>> > momentos lo hago fila por fila quiero que esto se cargue diferente,
>> > que
>> > sean
>> > todoooo los datos de un saque como diriamos.osea todo lo que
>> > tengo
>> > en el
>> > datatable se cargue a la tabla.(sin hacerlo fila por fila)
>> > Alguien esta haciendo esto o sabe como lo puedo hacer ...????
>> > Agradezco de antemano las respuestas y sugerencias
>> >
>> > Muchas Gracias
>> > Saludos Diego
>>
>>



Respuesta Responder a este mensaje
#7 Diego
26/09/2006 - 16:54 | Informe spam
No puedo declarar el objeto SqlBulkCopy, por que es eso?? tengo que agrear
alguna referencia para poder declarar este objeto??, o por que es este error

ya intente con "SqlBuldCopy" y tampoco puedo declarar este objeto ???

Que hago??

Espero tu respuesta saludos Diego

"Jesús López" wrote:

En el caso de que el datatable tenga la misma estructura que la tabla de la
base de datos. Con el siguiente método sería suficiente:

Public Sub ImportDataTable( _
ByVal DataTable As DataTable, _
ByVal ServerTableName As String, _
ByVal SqlConnectionString As String _
)

Using cn As New SqlConnection(SqlConnectionString), _
bcp As New SqlBulkCopy(cn, SqlBulkCopyOptions.TableLock, Nothing)

cn.Open()
bcp.DestinationTableName = ServerTableName
bcp.WriteToServer(DataTable)

End Using
End Sub

Si tienen diference estructura, entonces tendrías que rellenar la collección
ColumnMappings del objeto SqlBuldCopy.

En cualquier caso la tabla debe existir en la base de datos antes de
realizar la importación.

Saludos:

Jesús López



"Diego" escribió en el mensaje
news:
>Y como utilizo ,, eso me puedes dar un ejemplo
>
> Muchas gracias de antemano
>
> Saludos
> Diego Roman
>
> "Jesús López" wrote:
>
>> Si lo que quieres es insertar todos los registros de un DataTable en una
>> tabla de una base de datos de SQL Server, lo más eficiente es usar
>> SqlBulkCopy.
>>
>> Saludos:
>>
>> Jesús López
>>
>>
>>
>> "Diego" escribió en el mensaje
>> news:
>> > Gracias amigo , pero lo que necesito es saber como puedo introducir
>> > todos
>> > los
>> > datos de un datatable a una tabla , sin tener que hacer el insert valor
>> > por
>> > valor, que todos los valores que tengo en el datatable me los pase a
>> > las
>> > tabla, y asi no tener que hacer esto valor por valor ,,,,,
>> >
>> > Gracias espero su ayuda
>> > Diego
>> >
>> > "doliveras" wrote:
>> >
>> >> Si lo que quieres es insertar, actualizar o eliminar todas las fila de
>> >> un DataTable en la Tabla correspondiente de la base de datos, el
>> >> método para eso es usar la función Update() del objecto
>> >> SQLDataAdapter en caso de ser SQL Server, o el DataAdapter de tu base
>> >> de datos ODBC, Oracle o lo que sea.
>> >>
>> >> Un SqlDataAdapter, en combinación con un CommandBuilder y un DataSet
>> >> te permite generar las sentencias Insert, UPdate y Delete a partir de
>> >> un SELECT, de esta forma puedes actualizar todas las fila de una Tabla
>> >> de la base de datos partiendo de lo que tengas guardado en un DataSet
>> >> y
>> >> una consulta SQL.
>> >>
>> >> Podrás encontrar un ejemplo práctico en esta dirección:
>> >> http://support.microsoft.com/?scid=kb;es;308055
>> >>
>> >>
>> >>
>> >> Diego wrote:
>> >> > Amigos necesito caragar todos los valores de un datatable, auqnue en
>> >> > estos
>> >> > momentos lo hago fila por fila quiero que esto se cargue diferente,
>> >> > que
>> >> > sean
>> >> > todoooo los datos de un saque como diriamos.osea todo lo que
>> >> > tengo
>> >> > en el
>> >> > datatable se cargue a la tabla.(sin hacerlo fila por fila)
>> >> > Alguien esta haciendo esto o sabe como lo puedo hacer ...????
>> >> > Agradezco de antemano las respuestas y sugerencias
>> >> >
>> >> > Muchas Gracias
>> >> > Saludos Diego
>> >>
>> >>
>>
>>
>>



Respuesta Responder a este mensaje
#8 Jesús López
26/09/2006 - 17:18 | Informe spam
La clase SqlBulkCopy es nueva en la .NET Framework 2.0. Si estás usando
Visual Studio 2003 no estará disponible ya que utiliza la .NET Framework
1.1.

La clase SqlBulkCopy está definida en el ensamblado System.Data.dll en el
espacio de nombres System.Data.SqlClient. Así que es necesario que tu
proyecto tenga una referencia a este ensamblado e incluir la siguente
instrucción al principio del archivo de código fuente:

Imports System.Data.SqlClient

Todo esto que te cuento está en la documentación...sólo hay que leerla de
vez en cuando ;-).

http://msdn2.microsoft.com/en-us/li...kcopy.aspx

Saludos:

Jesús López
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida