Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Requete parametrée Update [ Base de données / SQL Server ] (yahou29)

mardi 6 mai 2008 à 09:18:46 | Requete parametrée Update

yahou29

Bonjour à tous, j'ai encore besoin d'aide svp.
Voici 2 requetes paramétrées, la première fonctionne très bien et pas la deuxième. Pourtant ce sont les mêmes.... Merci pour vos suggestions .

// Update

if(eleve)

{

// Création de la commande

SqlCommand cmdUpEl =

new SqlCommand("update ELEVE set ELV_NUM = @ELV_NUM , CLS_CI = @CLS_CI , ELV_NOM = @ELV_NOM , ELV_PRN = @ELV_PRN , ELV_GENRE = @ELV_GENRE , ELV_DNAIS = @ELV_DNAIS , ELV_DENTR = @ELV_DENTR where ELV_NUM = ' " + lstNom.SelectedValue + " ' ",sqlConnection1);

// Ajout des paramètres

cmdUpEl.Parameters.Add("@ELV_NUM",SqlDbType.SmallInt);

cmdUpEl.Parameters.Add("@CLS_CI",SqlDbType.VarChar);

cmdUpEl.Parameters.Add("@ELV_NOM",SqlDbType.VarChar);

cmdUpEl.Parameters.Add("@ELV_PRN",SqlDbType.VarChar);

cmdUpEl.Parameters.Add("@ELV_GENRE",SqlDbType.VarChar);

cmdUpEl.Parameters.Add("@ELV_DNAIS",SqlDbType.DateTime);

cmdUpEl.Parameters.Add("@ELV_DENTR",SqlDbType.DateTime);

cmdUpEl.Parameters["@ELV_NUM"].Value = textBoxModifId.Text;

cmdUpEl.Parameters["@CLS_CI"].Value = textBoxModifClasse.Text;

cmdUpEl.Parameters["@ELV_NOM"].Value = textBoxModifNom.Text;

cmdUpEl.Parameters["@ELV_PRN"].Value = textBoxModifPrenom.Text;

cmdUpEl.Parameters["@ELV_GENRE"].Value = textBoxModifGenre.Text;

cmdUpEl.Parameters["@ELV_DNAIS"].Value = textBoxModifDateNais.Text;

cmdUpEl.Parameters["@ELV_DENTR"].Value = textBoxModifDateEntr.Text;

// Création du DataAdaptater et du DataSet

SqlDataAdapter dacmdUpEl;

DataSet dscmdUpEl;

dacmdUpEl =

new SqlDataAdapter(cmdUpEl);

dscmdUpEl =

new DataSet();

// Traitement

try

{

// Ouverture de la connexion

sqlConnection1.Open();

// Execution de la commande

cmdUpEl.ExecuteNonQuery();

// Fermeture de la connexion

sqlConnection1.Close();

}

catch(Exception ex)

{

MessageBox.Show(ex.Message);

}

//Actualisation de la liste lstNom

dsEleve1.Clear();

sqldaEleve.Fill(dsEleve1);

lstNom.DataSource = dsEleve1.ELEVE;

lstNom.DisplayMember = "ELV_NOM";

lstNom.ValueMember = "ELV_NUM";

}

if(professeur)

{

// Création de la commande

SqlCommand cmdUpProf =

new SqlCommand("update PROFESSEUR set PRF_CI = @PRF_CI , PRF_NOM = @PRF_NOM , PRF_PRN = @PRF_PRN , PRF_GENRE = @PRF_GENRE , PRF_DEMB = @PRF_DEMB , PRF_DNAIS = @PRF_DNAIS where PRF_CI = ' " + lstNom.SelectedValue + " ' ",sqlConnection1);

// Ajout des paramètres

cmdUpProf.Parameters.Add("@PRF_CI",SqlDbType.VarChar);

cmdUpProf.Parameters.Add("@PRF_NOM",SqlDbType.VarChar);

cmdUpProf.Parameters.Add("@PRF_PRN",SqlDbType.VarChar);

cmdUpProf.Parameters.Add("@PRF_GENRE",SqlDbType.VarChar);

cmdUpProf.Parameters.Add("@PRF_DEMB",SqlDbType.DateTime);

cmdUpProf.Parameters.Add("@PRF_DNAIS",SqlDbType.DateTime);

cmdUpProf.Parameters["@PRF_CI"].Value = textBoxModifId.Text;

cmdUpProf.Parameters["@PRF_NOM"].Value = textBoxModifNom.Text;

cmdUpProf.Parameters["@PRF_PRN"].Value = textBoxModifPrenom.Text;

cmdUpProf.Parameters["@PRF_GENRE"].Value = textBoxModifGenre.Text;

cmdUpProf.Parameters["@PRF_DEMB"].Value = textBoxModifDateEntr.Text;

cmdUpProf.Parameters["@PRF_DNAIS"].Value = textBoxModifDateNais.Text;

// Création du DataAdaptater et du DataSet

SqlDataAdapter dacmdUpProf;

DataSet dscmdUpProf;

dacmdUpProf =

new SqlDataAdapter(cmdUpProf);

dscmdUpProf =

new DataSet();

// Traitement

try

{

// Ouverture de la connexion

sqlConnection1.Open();

// Execution de la commande

cmdUpProf.ExecuteNonQuery();

// Fermeture de la connexion

sqlConnection1.Close();

}

catch(Exception ex)

{

MessageBox.Show(ex.Message);

}

//Actualisation de la liste lstNom

dsProfesseur1.Clear();

sqldaProfesseur.Fill(dsProfesseur1);

lstNom.DataSource = dsProfesseur1.PROFESSEUR;

lstNom.DisplayMember = "PRF_NOM";

lstNom.ValueMember = "PRF_CI";

}


mardi 6 mai 2008 à 09:26:32 | Re : Requete parametrée Update

SharpMao

Membre Club
Hello,

Tu dis que la 2ème ne fonctionne pas, as-tu une erreur, ou est-ce qu'elle ne mais rien à jour dans la DB, mais sans faire d'exception ?

Ensuite, encore une petite remarque. Tu peux encore améliorer l'utilisation des requêtes paramétrées en y mettant aussi la clause where.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)

mardi 6 mai 2008 à 09:30:05 | Re : Requete parametrée Update

yahou29

Merci .

La 2e requete ne fait rien du tout , si j'ajoute un "e" a un nom, en cliquant sur mon bouton update, cela enleve le "e". Et aucun message d'erreur.

Etant bloqué, je vais etudier la clause where pour les requetes parametrées, merci pour le conseil.

mardi 6 mai 2008 à 09:44:52 | Re : Requete parametrée Update

SharpMao

Membre Club
Re,

Ca n'a peut-être aucun rapport, mais tu n'es pas obligé de faire un DataAdapter et un DAtaSet pour un update

using (sqlConnection1){
   sqlConnection1.Open();
   cmdUpProf.Connection = sqlConnection1;
   cmd.ExecuteNonQuery();
}


Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)

mardi 6 mai 2008 à 10:13:31 | Re : Requete parametrée Update

yahou29

re,

en effet ce n'est pas obligatoire.

j'ai tenté :

dacmdUpProf.Update(dscmdUpProf);

dscmdUpProf.AcceptChanges();

mais toujours pareil.

Merci


mardi 6 mai 2008 à 10:43:17 | Re : Requete parametrée Update

SharpMao

Membre Club
Oui, mais as-tu tenté les cinq lignes que je t'ai donné ?
(En corrigeant la petite erreur cmdUpProf.ExecuteNonQuery();)

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)

mardi 6 mai 2008 à 10:45:29 | Re : Requete parametrée Update

yahou29

oui, j'ai tenté, j'ai un problème d'initialisation de connectionstring

mardi 6 mai 2008 à 12:13:22 | Re : Requete parametrée Update

yahou29

Problème Resolu, j'ai changé de méthode.
Mon problème d'affichage est resolu par : lstNom.SelectedValue = 0; puis par un raffraichissement du dataset.
 
Dernière question qui est plutot du SQL : Peut on modifier une clé primaire ? du genre : si j'ai une prof qui se marie , donc change de nom, son identifiant qui est "AR" devient "AD"

SharpMao, merci pour ton aide.

voici le code :

// Update

if(eleve)

{

// Traitement

try

{

// Ouverture de la connexion

sqlConnection1.Open();

// Execution de la commande

lstNom.SelectedValue= 0;

sqldaEleve.Update(dsEleve1);

// Fermeture de la connexion

sqlConnection1.Close();

}

catch(Exception ex)

{

MessageBox.Show(ex.Message);

}

//Actualisation de la liste lstNom

dsEleve1.Clear();

sqldaEleve.Fill(dsEleve1);

lstNom.DataSource = dsEleve1.ELEVE;

lstNom.DisplayMember = "ELV_NOM";

lstNom.ValueMember = "ELV_NUM";

}

if(professeur)

{

// Traitement

try

{

// Ouverture de la connexion

sqlConnection1.Open();

// Execution de la commande

lstNom.SelectedValue= 0;

sqldaProfesseur.Update(dsProfesseur1);

// Fermeture de la connexion

sqlConnection1.Close();

}

catch(Exception ex)

{

MessageBox.Show(ex.Message);

}

//Actualisation de la liste lstNom

dsProfesseur1.Clear();

sqldaProfesseur.Fill(dsProfesseur1);

lstNom.DataSource = dsProfesseur1.PROFESSEUR;

lstNom.DisplayMember = "PRF_NOM";

lstNom.ValueMember = "PRF_CI";

}




Cette discussion est classé dans : add, parameters, elv, prf, cmdupel


Répondre à ce message

Sujets en rapport avec ce message

Requete INSERT en c# avec SqlServer [ par yahou29 ] Bonjour à tous,Je suis depuis 2 jour sur un simple requete qui ne fonctionne pas...Message d'erreur :Violation de la contrainte PRIMARY KEY 'PK_ELEVE' probleme code requête parametrée [ par zakaroh ] bonjour, je veux réalisé une requete parametrée j'ai ecris le code suivant : private void button1_Click(object sender, EventArgs e) { BASE DONNEE [ par valentin013 ] Bonjour à tous, voilà mon pb.dans mon programme j'execute une procedure stokée mais elle n'enregistre pas les donne, j'utilise un fichier de base de d List<String> vers string [ par Jay21 ] Bonjour tout le monde,J'ai un petit soucis.Je veux envoyer un mail et je stocke les lignes de mon body dans une liste de string exemple :List mybody = Affichage des hashtable [ par s010179 ] Bonjour,je viens de créer un hashtable, mais lorsque je veux afficher les données dans l'ordre où je les ai entrées les clés sont mélangées. Voici un List<> Controler les add et remove [ par Yxion ] Salut, J'ai une une list generic et j'aimerai contrôler les add et remove, soit en dérivant ma classe soit en poussant un evenement sur Sérialisation d'une ArrayList [ par vecchio56 ] Bonjour,J'ai un petit problème quand j'essaie de sérialiser une ArrayList. Apparemment, les objets contenus dans la liste sont d'un type inattendu. J' Créer une forme dans Visio à partir d'un add-in [ par crawling5 ] Bonjour,Ca fait 2 jours que je recherche des informations sur ce sujet, mais je n'en vois aucune.J'aimerais pouvoir créer un add-in Visio (en C#) qui comment utiliser le SDK de Visio 2003 [ par thmatew ] Salut a tous,J'aimerai trouver un bon tutorial sur le developpement avec SDK Visio 2003, parce que je cherche depuis des jours et des jours et les exe Recuperer nom d'utilisateur pour chaque processus [ par T103 ] Bonsoir, Je suis sous vsexpress c#, j'essaye de faire un programme qui recupère les processus actifs du system avec la mémoire utilisé, le chemin d'ac


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,42 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.