2011-04-13 3 views
0

Im ayant un databse avec quelques informations client (customer_nr (clé primaire), nom, adresse, etc.)C# mise à jour de base de données et insérer

Le informaton provient d'un fichier xml et est stocké dans le databse appelé customer_info. Maintenant je veux mettre à jour cette table, exemple si le client change son adresse je veux mettre à jour la table ou, si un client n'existe pas je veux insérer une nouvelle rangée avec l'information. Maintenant, comment je fais ça? J'ai essayé beaucoup de choses différentes mais rien ne semble fonctionner.

exemple de code:

mon insert ressemble à ceci:

using (var cmd = new SqlCommand("insert into [customer_info] (custoner_nr, firstName,lastName, adress_1....(and so on))", connection)) { 
       cmd.Parameters.AddWithValue("@customer_nr", customerNr); 
       cmd.Parameters.AddWithValue("@firstName", fName); 
       cmd.Parameters.AddWithValue("@lastName", lName); 
       cmd.ExecuteNonQuery(); 

ma mise à jour ressemble à ceci:

using (var cmd = new SqlCommand("UPDATE [customer_info] SET [customer_nr] = @customer_nr [firstName] = @firstName, [lastName] = @lastName, WHERE (([customer_nr] = @customer_nr))", connection)) { 
       cmd.Parameters.AddWithValue("@custmer_nr", customerNr); 
       cmd.Parameters.AddWithValue("@fornamn", fName); 
       cmd.Parameters.AddWithValue("@efternamn", lName); 
       cmd.ExecuteNonQuery(); 

J'ai essayé de faire correspondre la customer_nr, quelque chose comme ceci:

DataRow row = dataSet.custmer_info.FindBycustomer_nr(t.customerNr); 
if (bla != null) { 
    updateCustomer(t.kontoNr,t.fName,t.lastname....); 
} else { 
    insertCustomer(t.kontoNr,t.fName,t.lastname....); 
} 

Si quelqu'un comprend mon problème et pourrait m'aider je serais si reconnaissant, je suis vraiment coincé et ce qui a été testé ne fonctionne pas. = (

+1

Ainsi, Que fait votre code? Quelles erreurs obtenez-vous? Quel comportement? – Oded

+0

Faisons-nous vos devoirs? :-) – Remy

+0

Comment votre DataSet est-il mis à jour avec les enregistrements insérés ou mis à jour? Comment déterminez-vous que votre code ne fonctionne pas? – Mufaka

Répondre

1

Pour autant que je peux vous voir n'ouvrez une fermeture de la connexion

using (var cmd = new SqlCommand("UPDATE [customer_info] SET [customer_nr] = @customer_nr [firstName] = @firstName, [lastName] = @lastName, WHERE (([customer_nr] = @customer_nr))", connection)) { 
       cmd.Parameters.AddWithValue("@custmer_nr", customerNr); 
       cmd.Parameters.AddWithValue("@fornamn", fName); 
       cmd.Parameters.AddWithValue("@efternamn", lName); 
       connection.Open(); 
       cmd.ExecuteNonQuery(); 
       connection.Close(); 
Questions connexes