IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Problème d'enregistrement dans une base SqlServer


Sujet :

C#

  1. #41
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI");
    			command = new SqlCommand("SELECT C_STATUCLT FROM CLIENT WHERE CLIENT.C_NOMCLT= @NomClt");
    			command.Parameters.Add("@NomClt", SqlDbType.VarChar);
    			command.Parameters["@NomClt"].Value = NomClient;
    			try
    			{
    				connection.Open();
    				Int32 rowsAffected = command.ExecuteNonQuery();
    				Console.WriteLine("RowsAffected: {0}", rowsAffected);
    			}
    			catch (Exception ex)
    			{
    				Console.WriteLine(ex.Message);
    			}
    			connection.Close();
    Ce code ne compile pas?

  2. #42
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à fally
    Ben il m'indique aucune erreur mais ne m'affiche pas dans la comboStatu le statut correspondant au client choisit précédement.

    merci d'avance

  3. #43
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Supprime cette horreur de Console.WriteLine dans le catch
    Tu pourras au moins voir les exceptions déclenchées.

    Par exemple, en supprimant le try/catch qui ne sert à rien ici, tu aurais vu que ta SqlCommand n'est pas liée à ta connexion. Tu devrais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlCommand maCommand = maConnexion.CreateCommand();
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  4. #44
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    Ben il m'indique aucune erreur mais ne m'affiche pas dans la comboStatu le statut correspondant au client choisit précédement.

    merci d'avance
    Dans le code que tu nous propose à aucun moment, tu dis à ton comboStatu d'afficher quoi que ce soit. Donc à priori on serait pas te dire ou est le pb, si tu nous montre pas ce que tu fais
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  5. #45
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    ca fait 10x que je te dis d'apprendre au lieu de te lancer

    moi avant de faire du .NET j'ai lu potassé le cours de plasserre (et d'autres) pendant une cinquantaine d'heures

    on ne peut pas développer sans connaissances de l'environnement

    et dis pas qu'on te laisse dans la merde, ca fait 3 pages qu'on essaie de t'aider
    mais tu ne comprends pas parce que tu n'as pas les bases de l'objet

    donc on va tourner en rond, je vais encore te dire de potasser des tutorials et tu vas encore nous poster du code pourri avec une question qui ne concorde meme pas...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #46
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Réponse à rad_hass : Justement je sait pas et je voit pas comment faire pour dire a mon comboStatu d'afficher le statut du client choisit précédement.

    Réponse à SaumonAgile : J'ai modifié ce que tu ma dit ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI");
    			SqlCommand Macommand = connection.CreateCommand();
    			command = new SqlCommand("SELECT C_STATUCLT FROM CLIENT WHERE CLIENT.C_NOMCLT= @NomClt");
    			connection.Open();
    			command.Parameters.Add("@NomClt", SqlDbType.VarChar);
    			command.Parameters["@NomClt"].Value = NomClient;
    			connection.Close();
    mais toujours rien.

  7. #47
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    Réponse à rad_hass : Justement je sait pas et je voit pas comment faire pour dire a mon comboStatu d'afficher le statut du client choisit précédement.
    Ben pour faire simple tu mets un bouton pour valider et donner une valeur à ComboStatu (sinon tu associe un évenement à la selection et c'est déjà plus compelxe).
    Sinon le conseil de sperot51 peut beaucoup t'aider. Tu t'investie à t'auto former, tu perderas du temps maintenant, mais vu la difficulté que t'as à apprehender les problèmes, c'est un gain sur le long et moyen terme ...
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  8. #48
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Le problème c'est que je n'ai plus le temps de m'auto-former comme tu dit car mon projet doit être fini dans 2-3semaine (suis en stage de 2éme années de BTS IG) et je suis encore loin d'avoir fait ce que je doit faire.

    Pour ça que je demande de l'aide.
    Faire un bouton n'est pas possible car je n'ai pas que le StatutClient a remplire, il va y avoir d'autre TextBox a remplir après.

    Sinon je laisse mes requêtes non paramétrés mais faudrait trouvé le pourquoi que ça n'enregistre pas dans la base.

    merci d'avance

  9. #49
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    Citation Envoyé par rad_hass Voir le message
    Dans le code que tu nous propose à aucun moment, tu dis à ton comboStatu d'afficher quoi que ce soit. Donc à priori on serait pas te dire ou est le pb, si tu nous montre pas ce que tu fais
    je suis d'avis!
    Montre nous comment tu charges ta combo

  10. #50
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI");
    			command = new SqlCommand("SELECT CLIENT.C_STATUCLT FROM CLIENT WHERE CLIENT.C_NOMCLT='" + NomClient.Text + "'", connection);
    			connection.Open();
    			try
    			{
    				rader = command.ExecuteReader();
    				try
    				{
    					while (rader.Read()) 
    						StatuClt.Text = Convert.ToString(rader["C_STATUCLT"]);
    				}
    				finally
    				{
    					rader.Close();
    				}
    			}
    voila le code pour remplir la comboStatu sans que la requête soit paramétrés.

    C ca que tu souhaité fally??

  11. #51
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    while (rader.Read()) 
    StatuClt.Text = Convert.ToString(rader["C_STATUCLT"]);
    fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    StatuClt.Items.Add(rader.GetString(0));// 0 = la position de "C_STATUCLT"

  12. #52
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StatuClt.Items.Add(rader.GetString(0));// 0 = la position de "C_STATUCLT"
    Ok mais le problème c'est qu'il souligne en bleu : "rader" et m'affiche comme erreur :
    C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(474): Utilisation d'une variable locale non assignée 'rader'
    merci d'avance!!
    P.S : qu'appelle tu "la position de C_STATUCLT" ?? par rapport a quoi??

  13. #53
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StatuClt.Items.Add(rader.GetString(0));// 0 = la position de "C_STATUCLT"
    Ok mais le problème c'est qu'il souligne en bleu : "rader" et m'affiche comme erreur :


    merci d'avance!!

    Toute variable doit être defini ...

    SqlDataReader rader = command.ExecuteReader(); // et non rader =

    Il te faut potasser un cours ce WE lol
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  14. #54
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StatuClt.Text = Convert.ToString(rader["C_STATUCLT"]);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StatuClt.Items.Add(rader.GetString(0));

  15. #55
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SqlConnection connection;
    			SqlCommand command;
    			SqlDataReader rader;
    connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI");
    			SqlCommand Macommand = connection.CreateCommand();
    			command = new SqlCommand("SELECT C_STATUCLT FROM CLIENT WHERE CLIENT.C_NOMCLT= @NomClt");
    			connection.Open();
    			command.Parameters.Add("@NomClt", SqlDbType.VarChar);
    			command.Parameters["@NomClt"].Value = NomClient;
    			StatuClient.Items.Add(rader.GetString(0));
    			SqlDataReader rader = command.ExecuteReader();
    			connection.Close();
    C'est bien ce que j'ai fait fally, si tu regarde mon code ci-dessus.
    Lorsque je rajoute "SqlDataReader rader = command.ExecuteReader();" il me souligne en bleu le premier rader de la phrase ci-dessus et m'affiche l'erreur suivante :
    C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(475): Une variable locale nommée 'rader' est déjà définie dans cette portée
    merci d'avance!!

  16. #56
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    regarde ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    SqlConnection connection;
    SqlCommand command;
    connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI");
    SqlCommand Macommand = connection.CreateCommand();
    command = new SqlCommand("SELECT C_STATUCLT FROM CLIENT WHERE CLIENT.C_NOMCLT= @NomClt");
    connection.Open();
    command.Parameters.Add("@NomClt", SqlDbType.VarChar);
    command.Parameters["@NomClt"].Value = NomClient;
    SqlDataReader rader = command.ExecuteReader();
    try
    {
      while (rader.Read()) 
      StatuClient.Items.Add(rader.GetString(0));
    }
    catch(Exception ee)
    {
      MessageBox.Show(ee.Message);
    }
    connection.Close();

  17. #57
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à fally
    Je vient de regarder ton code, et de l'essayer mais c'est malheureusement toujours pareil. C'est à dire que je choisit le client et puis quelques secondes après il m'affiche le message ci-joint (document word)
    Et me surligne en vert
    SqlDataReader rader = command.ExecuteReader();
    merci pour ton aide!!

  18. #58
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    SqlConnection connection;
    SqlCommand command;
    connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI");
    connection.Open();
    string requete = "SELECT C_STATUCLT FROM CLIENT WHERE CLIENT.C_NOMCLT= @NomClt");
    command = new SqlCommand(requete,connection);
    command.Parameters.Add("@NomClt", SqlDbType.VarChar);
    command.Parameters["@NomClt"].Value = NomClient;
    SqlDataReader rader = command.ExecuteReader();
    try
    {
      while (rader.Read()) 
      StatuClient.Items.Add(rader.GetString(0));
    }
    catch(Exception ee)
    {
      MessageBox.Show(ee.Message);
    }
    connection.Close();

  19. #59
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    voici le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    SqlConnection connection;
    			SqlCommand command;
    			connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI");
    			connection.Open();
    			string requete = ("SELECT C_STATUCLT FROM CLIENT WHERE CLIENT.C_NOMCLT= @NomClt");
    			command = new SqlCommand(requete,connection);
    			command.Parameters.Add("@NomClt", SqlDbType.VarChar);
    			command.Parameters["@NomClt"].Value = NomClient;
    			SqlDataReader rader = command.ExecuteReader();
    			try
    			{
    				while (rader.Read()) 
    					StatuClient.Items.Add(rader.GetString(0));
    			}
    			catch(Exception ee)
    			{
    				MessageBox.Show(ee.Message);
    			}
    			finally
    			{
    				connection.Close();
    			}
    Il fonctionne toujours pas. C'est à dire je lance mon application, il me demande le client(normal) et ensuite il ne m'affiche pas le statut mais il se bloque en surlignant en vert le code suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlDataReader rader = command.ExecuteReader();
    il m'affiche l'erreur ci-joint en document Word.

    Je bosse pas lundi mais j'essayeré de trouver du temps pour y travailler car beaucoup de retard.

    merci d'avance!!

  20. #60
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Tu dois utiliser la méthode GetQuelquechose de ton reader qui correspond au type du champ de la requête. Ici C_STATUCLT n'est apparemment pas du type String (nvarchar, varchar, text), d'où l'erreur de cast.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 12 PremièrePremière 1234567 ... DernièreDernière

Discussions similaires

  1. Problème d'enregistrement dans une base de données
    Par mcfly37 dans le forum Hibernate
    Réponses: 1
    Dernier message: 08/07/2010, 17h41
  2. Réponses: 3
    Dernier message: 29/03/2008, 11h36
  3. problème d'insertion dans une base de données
    Par belmansour tidjani dans le forum JDBC
    Réponses: 7
    Dernier message: 18/01/2006, 22h13
  4. problème de recherche dans une base de donnée mysql
    Par Xini28 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 24/10/2005, 18h00
  5. problème de recherche dans une base de données
    Par bouzid_mehdi dans le forum Bases de données
    Réponses: 2
    Dernier message: 19/07/2005, 06h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo