2013-06-13 2 views
-1

J'essaie d'ajouter des enregistrements à une table MS Access 2007 en utilisant une application C#. Ma table se compose de 3 champs: ID, Name et phone. Par exemple, j'ai essayé d'ajouter un enregistrement pour certains avec ces données: ID=1, Name=Boulis et phone=1212422. La requête n'a renvoyé aucune erreur mais je n'ai pas trouvé ces données dans ma table.Je ne peux pas mettre à jour une table Access 2007 en utilisant des instructions C#

Mais la question la plus surprenante est que lorsque j'ai essayé d'ajouter les mêmes données précédente Je suis une erreur en disant:

« Les changements que vous avez demandé à la table n'ont pas réussi parce qu'ils créeraient des valeurs en double dans l'index, la clé primaire ou la relation Modifiez les données dans le champ ou les champs contenant des données en double, supprimez l'index ou redéfinissez l'index pour autoriser les entrées en double et réessayez.

private void button1_Click(object sender, EventArgs e) 
{ 
    OleDbConnection con = new OleDbConnection(); 

    string ConnStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\boulis.accdb;;Persist Security Info=False "; 

    con.ConnectionString = ConnStr; 
    con .Open(); 
    MessageBox.Show("The connection is available now"); 
    OleDbCommand cmd = new OleDbCommand(); 
    cmd.CommandText = "INSERT INTO info(ID, Name, phone) Values(@StudIDTxt, @StudNameTxt, @StudCNCITxt)"; 
    cmd.Parameters.AddWithValue("@StudIDTxt",1); 
    cmd.Parameters.AddWithValue("@StudNameTxt", "boulis"); 
    cmd.Parameters.AddWithValue("@StudCNCITxt", 1212422); 

    cmd.Connection = con; 
    cmd.ExecuteNonQuery(); 
    MessageBox.Show("table is already updated"); 
} 
+0

Et où est ce code dont vous parlez? S'il vous plaît le poster. –

Répondre

0

Le message d'erreur que vous recevez à la deuxième tentative indique clairement que la première tentative a été couronnée de succès. Si vous aviez déjà la table ouverte dans Access avant d'effectuer l'INSERT en C#, alors vous ne serez pas en mesure de voir le nouveau record jusqu'à ce que vous

  • proche et rouvrez la table dans Access, ou

  • actualise l'affichage de la feuille de données (ou un formulaire, ou autre). Cela peut être accompli en cliquant sur le bouton "Actualiser tout" dans la section "Enregistrements" de l'onglet "Accueil" (dans Access 2010, de toute façon).

+0

J'ai déjà actualisé et réouvert la base de données mais pas de changement. – boulis

Questions connexes