Nous avons vu dans un autre sujet comment créer une clé primaire en utilisant la propriété PrimaryKey d'un objet DataTable. Maintenant nous allons voir comment créer une contrainte de clé primaire :
Dim MonDataSet As New DataSet Dim MaTable As DataTable = MonDataSet.Tables.Add("Personnes") With MaTable .Columns.Add("Id") .Constraints.Add("ClePrimaire", .Columns("Id"), True) .Columns.Add("Nom") .Columns.Add("Salaire") End With
Dim Enregistrement As DataRow = MaTable.NewRow Enregistrement("Nom") = "Gates" Enregistrement("Salaire") = 80000 MaTable.Rows.Add(Enregistrement)
".Constraints.Add("ClePrimaire", .Columns("Id"), True)" Le troisième argument de cette méthode est comme vous pouvez le constater un booleen. Il permet de signaler si cette contrainte est une contrainte de clé primaire (True) ou Unique (False)
A true, si vous dupliquez l'instruction MaTable.Rows.Add(Enregistrement) vous leverez l'exception : NoNullAllowedException C'est un comportement normal car une contrainte de clé primaire oblige le champ à être renseigné.
En revanche, à false (contrainte unique), vous ne leverez aucune exception car cette contrainte accepte les nulls.
Microsoft réalise une enquête en ligne pour comprendre votre opinion sur le site Web de Msdn. Si vous choisissez de participer, l’enquête en ligne vous sera présentée lorsque vous quitterez le site Web de Msdn.