J'utilise un DataAdapter
pour remplir un DataSet
à partir d'une table avec une clé primaire.Violations de clé primaire ADO.NET DataSet
Si je remplace une valeur dans la colonne de clé primaire par une valeur qui existe déjà dans une autre ligne, je n'obtiens pas d'erreur de violation de clé primaire.
Si j'appelle DataSet.AcceptChanges()
après avoir modifié une ligne de façon à ce qu'il y ait maintenant des valeurs de clé primaire en double, il n'y a toujours pas d'erreur de violation de clé primaire.
Pourquoi est-ce?
string sqlcommand = "select * from itemmaster";//itemaster contains id field which is primary key//
SqlConnection cn = new SqlConnection(connstring);
cn.Open();
SqlCommand cmd = new SqlCommand(sqlcommand, cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
ds.Tables[0].Rows[4]["ID"] = "2"; // value 2 already exists in another row
Par curiosité, pourquoi fais-tu avec le développement 'DataSet's au lieu d'un ORM? –
S'il vous plaît voir http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts –
Aussi, vous obtiendrez de meilleures réponses si vous montrez du code. Créez un petit exemple qui montre le problème, puis publiez l'exemple ici. –