J'ai un petit jeu de données avec quelques données. Je charge les données à partir de divers DB et ai un fichier de configuration que j'ai lu pour déterminer les clés primaires que je veux appliquer sur les datatables donnés. Si la configuration ne contient pas de clé primaire appropriée (non unique), comment puis-je attraper cet événement lors de l'application de la clé primaire à la datatable? À l'heure actuelle, il semble que cela me permet d'appliquer la clé primaire, même si ce n'est pas unique .....net Jeu de clés primaires - Mise en application de l'unicité?
DataTable dtbl = ds.Tables[t.tblname];
DataColumn[] pks = new DataColumn[t.Get_Key_Columns().Count];
int i = 0;
foreach(DataColumn c in dtbl.Columns)
{
if(t.Get_Key_Columns().Exists(delegate(App_Column ac)
{return (ac.column_name == c.ColumnName);}))
{
pks[i] = c;
i++;
}
}
try
{
dtbl.PrimaryKey = pks;
}
catch etc.......
Tout le monde pointe ce que je suis absent? Merci
try { UniqueConstraint uc = nouveau UniqueConstraint ("pk", pks, true); dtbl.Constraints.Add (uc); } J'ai vérifié HasErrors et son false après que chaque PK ait été appliqué. (J'ai coché les propriétés Dataset et DataTable) .... J'appelle même AcceptChanges() ... – WIDBA
L'ensemble de données est rempli à partir de la source de données, puis j'applique les clés .. Y a-t-il une propriété sur l'ensemble de données pour les contraintes? – WIDBA
pouvez-vous insérer un doublon * après * la clé primaire est appliquée? –