Error al buscar un registro.

20/07/2006 - 18:13 por INFORMÁTICA APLICADA | Informe spam
Cuando llega la ejecución a la siguiente sentencia:
FILA = DTSCLI.Tables("MCLIENTES").Rows.Find(CLAVE)
para que me busque un registro en concreto, me aparece el siguiente error:

Excepción no controlada del tipo 'System.Data.MissingPrimaryKeyException' en
system.data.dll

Información adicional: La tabla no tiene una clave principal.

¿Que me falta?
Creo que tengo que decirle que campo es la clave primaria pero
¿como y donde se lo digo?

Gracias.

INFORMÁTICA APLICADA
 

Leer las respuestas

#1 Jesús López
20/07/2006 - 18:43 | Informe spam
De "Información adicional: La tabla no tiene una clave principal." está
bien claro que lo que falta es la clave principal del datatable.

¿Cómo definir la clave primaria del datatable?

Eso depende de como hayas definido el dataset.

1) Si el dataset es un dataset con tipo, abre el archivo xsd en diseño y
define allí la clave primaria

2) Si el dataset no es con tipo y se crea la estructura cuando se rellena
con un DataAdapter usando el método Fill. Entonces establece la propiedad
MisingSchemaAction del DataAdapter a MissingSchemaAction.AddWithKey. De esta
manera si la tabla de la base de datos tiene una clave primaria y el
proveedor de datos informa de ella, entonces el método Fill creará las
columnas del datatable y la clave primaria. Si no tendrás que añadir la
clave primaria por código:

Dim Table As DataTable = DTSCLI.Tables("MCLIENTES")
Table.PrimaryKey = New DataColumn() {Table.Columns("CampoClavePrimaria")}


Saludos:

Jesús López

"INFORMÁTICA APLICADA" escribió en el mensaje
news:
Cuando llega la ejecución a la siguiente sentencia:
FILA = DTSCLI.Tables("MCLIENTES").Rows.Find(CLAVE)
para que me busque un registro en concreto, me aparece el siguiente error:

Excepción no controlada del tipo 'System.Data.MissingPrimaryKeyException'
en
system.data.dll

Información adicional: La tabla no tiene una clave principal.

¿Que me falta?
Creo que tengo que decirle que campo es la clave primaria pero
¿como y donde se lo digo?

Gracias.

INFORMÁTICA APLICADA

Preguntas similares