2010-09-01 7 views

Respuesta

57

Suponiendo que el nombre de la columna en la tabla de datos que desea ser la clave principal se llama pk_column, usted puede hacer esto (suponiendo dt es su DataTable):

dt.PrimaryKey = new DataColumn[] { dt.Columns["pk_column"] }; 

Si se hace su clave primaria por múltiples columnas, se puede añadir a la matriz, así:

dt.PrimaryKey = new DataColumn[] { dt.Columns["pk_column1"], dt.Columns["pk_column2"] }; 

así que si estuviera haciendo student_id su clave primaria, usted puede hacer esto:

dt.PrimaryKey = new DataColumn[] { dt.Columns["student_id"] }; 
+2

ya estoy haivng tabla de datos que tiene la student_id nombre de columna que quiero hacer clave principal en fechable ómo hacer esto, esto es mi pregunta exacta que no quiero añadir cualquier otra columna extra para hacer que la clave primaria – NoviceToDotNet

+3

@NoviceToDotNet - Este código no agrega ninguna columna adicional a DataTable, sino que establece la clave principal utilizando una columna existente ya presente en DataTable. Vea mi última edición sobre cómo hacerlo con student_id. – dcp

+9

@NoviceToDotNet: No dejes que la palabra clave 'new' te desanime. La sugerencia de dcp no crea ningún nuevo objeto 'DataColumn'; más bien, crea una nueva * matriz * y coloca las columnas existentes en esta matriz para pasar a la propiedad 'PrimaryKey'. Este es el enfoque correcto. –

0
DataColumn pkCurrencyCodeId = TblCurrencyCode.Columns.Add("CurrencyCodeId", typeof(Int32)); 
TblCurrencyCode.PrimaryKey = new DataColumn[] { pkCurrencyCodeId }; 
Cuestiones relacionadas