Foros del Web » Programación para mayores de 30 ;) » .NET »

Crearle un PrimaryKey a una tabla del DataSet

Estas en el tema de Crearle un PrimaryKey a una tabla del DataSet en el foro de .NET en Foros del Web. Estoy desarrollando una aplicación para PocketPC en VB.NET 2003 y estoy tratando de crearle un PrimaryKey a una tabla de un DataSet. Lo intenté hacer ...
  #1 (permalink)  
Antiguo 30/06/2006, 07:01
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
Crearle un PrimaryKey a una tabla del DataSet

Estoy desarrollando una aplicación para PocketPC en VB.NET 2003 y estoy tratando de crearle un PrimaryKey a una tabla de un DataSet. Lo intenté hacer de la siguiente forma:
Código:
Dim Campo() As System.Data.DataColumn
Campo(0).ColumnName = "NoDocumento"
dsDataSet.Tables(0).PrimaryKey = Campo
Pero me da un error que dice NullReferenceException.

Me explota en la línea 2: Campo(0).ColumnName = "NoDocumento"
¿Cómo le pongo un PrimaryKey a una tabla de un DataSet?
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #2 (permalink)  
Antiguo 30/06/2006, 11:16
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Yo haria algo así:
Código:
Dim Campo As New System.Data.DataColumn
Campo.ColumnName = "NoDocumento"
dsDataSet.Tables(0).PrimaryKey = Campo
Lo que ocurre es que no se si te va adecir que esa columna no pertenece a esa tabla o algo parecido.. Entonces haria algo así:
Código:
Dim Campo As System.Data.DataColumn = dsDataSet.Tables(0).Columns("xxx")
dsDataSet.Tables(0).PrimaryKey = Campo
A ver si va por ahi la cosa.
Saludos.
__________________
..:: moNTeZIon ::..
  #3 (permalink)  
Antiguo 30/06/2006, 11:50
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
moNTeZIon, de ninguna de las dos forma me funciona porque la propiedad PrimaryKey espera un arreglo. Así como dices siempre me sombrea como error la siguiente línea:
dsDataSet.Tables(0).PrimaryKey = Campo.

Especificamente el objeto Campo es que me sombrea y el error que da es el siguiente:
"Value of type 'System.Data.DataColumn' cannot be converted to '1-dimensional array of System.Data.DataColumn'."

Es por eso que yo había declarado el objeto campo así: Dim Campo() As System.Data.DataColumn

Alguna otra sugerencia?
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #4 (permalink)  
Antiguo 30/06/2006, 13:44
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Cita:
Iniciado por RsOfT
Alguna otra sugerencia?
Lee la documentación...

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #5 (permalink)  
Antiguo 30/06/2006, 14:09
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Hola,
Ciertamente, xknown tiene mucha razon
Me iluminé demasiado rápido al consestarte.
Esto te puede ayudar.
http://msdn2.microsoft.com/es-es/lib...rimarykey.aspx

Saludos.
__________________
..:: moNTeZIon ::..
  #6 (permalink)  
Antiguo 04/07/2006, 06:59
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
La forma que se explica en http://msdn2.microsoft.com/es-es/lib...rimarykey.aspx es agregando una columna al datatable y especificarle que es el PrimaryKey.

Pero en mi caso ya mi DataTable tiene todas las columnas agregadas proveniente de un FILL de un DataAdapter el cual leyó una tabla de una base de datos.

En la base de datos la tabla tiene su PrimaryKey, la pregunta es: ¿El DataTable ya viene con el PrimaryKey desde la tabla?

Cabe destacar que yo no quiero ponerle el PrimaryKey al DataTable para evitar duplicidad de registros, eso lo evito en la base de datos, sino para realizar consultas más rápido en memoria ya que si el DataTable tiene un PrimaryKey significa que está indexada.
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #7 (permalink)  
Antiguo 04/07/2006, 08:36
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
OK. Creo que debes investigar la colección constraints del datatable. Ahi le aplicas restricciones como primarykeys, etc..
Saludos RsOft.
__________________
..:: moNTeZIon ::..
  #8 (permalink)  
Antiguo 04/07/2006, 13:48
Avatar de OYEME  
Fecha de Ingreso: marzo-2004
Ubicación: Lima
Mensajes: 307
Antigüedad: 20 años, 1 mes
Puntos: 1
es asi
tabla.constraints.add("nombrecalve",tabla.columns( inidce),true)

ahi esta crebado una calve primaria al campo 0 , al final pones true para activar esa clave
__________________
http://www.luisariashidalgo.com
  #9 (permalink)  
Antiguo 04/07/2006, 14:14
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
Gracias
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:28.