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. #101
    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 viens d'essayer ce que tu ma donné mais le problème c'est que ça m'affiche toujours rien dans la combo StatuClient.

    Je comprend plus du tout comment faire.

    aidez-moi s'il vous plais.

  2. #102
    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
    Dis nous tu exécutes ce code là derriere quel évenement?

  3. #103
    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
    Derrière la combo NomClient.

    pourquoi?? je devrais l'exécuter derrière quel événement d'après toi??

    merci d'avance!!

  4. #104
    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
    tu veux afficher le statut du client sélectionné alors tu devras exécuter ce code juste après qu'on ait choisit un client et a chaque fois!

  5. #105
    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 le combo NomClient est rempli lorsque j'ouvre la fenêtre.

    Donc pour ça que j'ai mit mon code lors de l'exécution de la combo NomClient car cette combo elle est rempli.

    Sinon je vois pas ou le mettre d'autre pars.

    merci d'avance!!

  6. #106
    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
    Ta combo client etant deja remplie je suppose qu'il y a un nom de client sélectionné; il faut donc en meme temps charger la combo statut pour afficher le statut du client. Mets le code alors là où tu charges la combo client et aussi derriere l'evenement SelectedIndexChange de ta combo client
    comme celà chaque fois qu'on change de client il affiche le statut qui lui correspond

  7. #107
    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
    Bonjour,

    Je viens de mettre mon code ou je charge la combo client mais c'est toujours pareils c'est à dire que le statut ne s'affiche pas.

    Je vois pas pourquoi.

    Est-ce le code ou est-ce autre chose?? !!

  8. #108
    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
    Fais une éxécution pas à pas de ton code et vois les résultats que celà renvoit (mets un breakpoint)

  9. #109
    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
    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
    23
    24
    25
    26
    27
    28
    .... 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.Char, 20);
    			command.Parameters["@NomClt"].Value = NomClient.Items.ToString();
    			rader = command.ExecuteReader();
    			try
    			{
    				while (rader.Read())
    				{
    					string value = null;
    					// On part du principe que le champ à l'index 0 est de type char dans la base
    					if (rader.IsDBNull(0) == false)
    					{
    						value = rader["C_STATUCLT"].ToString();
    						StatutClient.Items.Add(value);
    					}		
    				}
    			}
    			catch(Exception ee)
    			{
    				MessageBox.Show(ee.Message);
    			}
    			finally
    			{
    				connection.Close();
    			}
    Donc j'ai fais un point d'arrêt sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    command.Parameters.Add("@NomClt", SqlDbType.Char, 20);
    et que je fais un espion sur " SqlDbType.Char " alors il me dit la chose suivante :
    SqlDbType.Char erreur*: l'identificateur 'SqlDbType' est hors de portée
    mais si je fais l'espion sur : " SqlDbType.Char, 20 ", il m'affiche 20.

    Par contre, si je met des points d'arrêt sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    string value = null;
    					// On part du principe que le champ à l'index 0 est de type char dans la base
    					if (rader.IsDBNull(0) == false)
    					{
    						value = rader["C_STATUCLT"].ToString();
    						StatutClient.Items.Add(value);
    il n'y va pas c'est à dire qu'il se stop sur : je vois pas quoi te dire de plus.

    merci d'avance!!

  10. #110
    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
    Tu veux que je t'envoye ma base SqlServer (enfin la structure) + l'application pour que tu opére mieux le problème??

    Cordialement.

  11. #111
    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
    Tu veux dire qu'il ne rentre pas dans ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (rader.IsDBNull(0) == false)
    {
      value = rader["C_STATUCLT"].ToString();
      StatutClient.Items.Add(value);
    }
    Si non c'est normal qu'il ne remplisse pas la combo statut parce que c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    StatutClient.Items.Add(value);
    qui remplit en réalité la combo

  12. #112
    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
    Voila tout à fais, j'ai pas l'impression qui rentre dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (rader.IsDBNull(0) == false)
    {
      value = rader["C_STATUCLT"].ToString();
      StatutClient.Items.Add(value);
    }
    mais il me dit rien du tout, donc je ne sais pas pourquoi.

    merci d'avance!!

  13. #113
    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
    Par contre si je retire le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (rader.IsDBNull(0) == false)
    , et que je met un point d'arrêt sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    value = rader["C_STATUCLT"].ToString();
    						StatutClient.Items.Add(value);
    cela ne fonctionne toujours pas.

    Je comprend vraiment pas comment cela se fait-il.

    merci d'avance!!

  14. #114
    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
    Il ne renvoit pas d'erreur?
    Si non mets un point d'arrêt sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    value = rader["C_STATUCLT"].ToString();
    et voit la valeur de "value".

  15. #115
    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
    Lorsque je fais un point d'arrêt sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    value = rader["C_STATUCLT"].ToString();
    il se passe rien c'est a dire qu'il ne s'arrête pas dessus.
    Donc quand je glisse ma souris sur le "value" il me dit : "(variable locale)string value"

    C tout.

    Je comprend vraiment rien là.

  16. #116
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 40
    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
    Lorsque je fais un point d'arrêt sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    value = rader["C_STATUCLT"].ToString();
    il se passe rien c'est a dire qu'il ne s'arrête pas dessus.
    Donc quand je glisse ma souris sur le "value" il me dit : "(variable locale)string value"

    C tout.

    Je comprend vraiment rien là.
    Est ce qu'il rentre dans le While ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    while (rader.Read())
    				{
    					string value = null;
    					// On part du principe que le champ à l'index 0 est de type char dans la base
    					if (rader.IsDBNull(0) == false)
    					{
    						value = rader["C_STATUCLT"].ToString();
    						StatutClient.Items.Add(value);
    					}		
    				}

  17. #117
    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
    Non, il s'arrête au While.
    Lorsque je glissa ma souris sur le 'Read()' de il me dit que
    rader.Read=rader.Read+0//method+offset
    Donc j'en déduis qu'il ne rentre pas plus dans le While.

    merci d'avance!!!

  18. #118
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 40
    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
    Non, il s'arrête au While.
    Lorsque je glissa ma souris sur le 'Read()' de il me dit que

    Donc j'en déduis qu'il ne rentre pas plus dans le While.

    merci d'avance!!!
    Vérifie ce que tu récupere ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    command.Parameters["@NomClt"].Value
    Et ensuite que ta requête renvoie quelques choses avec cette valeur ...

  19. #119
    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
    Il y a quelque chose que je ne comprend pas.

    Lorsque je test mon application, il arrive aau While.... et ensuite il me demande de remplir le NomClient. Il devrais me le demander avant : la preuve avec le 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    public NouvelleIntervention()
    		{
    			InitializeComponent();
     
    			SqlConnection connection;
    			SqlCommand command;
    			SqlDataReader rader;
    connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI");
    			command = new SqlCommand("SELECT C_NOMCLT FROM CLIENT", connection);
    			connection.Open();
    			try
    			{
    				rader = command.ExecuteReader();
    				try
    				{
    					while (rader.Read()) 
    						NomClient.Items.Add(Convert.ToString(rader["C_NOMCLT"]));
    				}
    				finally
    				{
    					rader.Close();
    				}
    			}
    			finally
    			{
    				connection.Close();
    			}   
    			StatuClient.Visible=true;
    			NumClt.Visible=true; 
     
     
    			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.Char, 20);
    			command.Parameters["@NomClt"].Value = NomClient.Items.ToString(); 
    			rader = command.ExecuteReader();
    			try
    			{
    				while (rader.Read())
    				{ 
    					string value = null;
    					// On part du principe que le champ à l'index 0 est de type char dans la base
    					if (rader.IsDBNull(0) == false)
    					{ 
    						value = rader["C_STATUCLT"].ToString();
    						StatutClient.Items.Add(value);
    					}		
    				}
    			}
    			catch(Exception ee)
    			{
    				MessageBox.Show(ee.Message);
    			}
    			finally
    			{
    				connection.Close();
    			} 
    		}
    Cordialement.
    Loic V.

  20. #120
    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 envoi du projet pour que ce soit plus simple.
    Voila je vois vraiment pas comment régler mon prblème donc je vous envoi ci-joint un lien ou se situe mon projet : http://dl.free.fr/alvqTWEY5/Nouveaudossier.rar

    Le fichier .sql correspond a ma base SqlServer2000.
    Le dossier correspond a mon application. Mon problème se situe au niveau de la fenêtre s'intitulant 'NouvelleIntervention' puis le code se situe dans 'public NouvelleIntervention'.

    A savoir, lorsque je fais la même chose (afficher le statut du client aprés avoir choisi le nomclient) avec une requête non paramétré, le code est le 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
    23
    24
    25
    26
    SqlCommand command;
    			SqlConnection connection;
    			SqlDataReader rader; 
     
    			// Code permettant d'afficher
    			// le statut du client choisit
    			connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI");
    			command = new SqlCommand("SELECT C_STATUCLT FROM CLIENT WHERE C_NOMCLT='" + NomClient.Text + "'", connection);
    			connection.Open();
    			try
    			{
    				rader = command.ExecuteReader();
    				try
    				{
    					while (rader.Read()) 
    						StatutClient.Text = Convert.ToString(rader["C_STATUCLT"]);
    				}
    				finally
    				{
    					rader.Close();
    				}
    			}
    			finally
    			{
    				connection.Close();
    			}
    merci d'avance!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 6 sur 12 PremièrePremière ... 2345678910 ... 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