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 :

Pb sur l'existence du résultat d'un textBox par rapport a la base


Sujet :

C#

  1. #1
    Membre éprouvé
    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
    Par défaut Pb sur l'existence du résultat d'un textBox par rapport a la base
    Bonjour,

    Voila j'ai une base SqlServer et mon projet sous Visual Studio.net 2003.
    Dans ma base : M_IDMAT correspond au numéro des machines
    Dans mon projet : NumMachine.

    Je souhaiterais faire en sorte que "si NumMachine existe dans M_IDMAT alors on n'insert pas les données correspondant au machine dans la base Sinon on les inserts".

    Dans ma phrase ci-dessus ce que je n'arrive pas a effectuer c'est "si NumMachine existe dans M_IDMAT".
    L'insertion je sais faire.

    Donc je souhaiterais savoir :
    * Comment traduire en langage C#.NET : "si NumMachine existe dans M_IDMAT".
    * Pour le sinon, il faut bien que je fasse comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (.......) {........}else{....}
    je vous demande cela car j'ai un doute.

    Merci d'avance pour votre aide!!

  2. #2
    Membre éprouvé
    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
    Par défaut
    voila j'ai essayé quelque chose mais cela ne fonctionne pas.
    Je vous joint ci-dessous le code en espérant que vous pourriez m'aider.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (NumMachine==M_IDMAT)
    			{
    				command = new SqlCommand("INSERT INTO INTERVENTION(IN_NUMINTER, C_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES('" + NumInter.Text + "', '" + NumClt.Text + "', '" + NumClt.Text + "','" + NumMachine.Text +"', '" + RaisonInter.Text + "', '" + Dépositaire.Text + "', '" + Réceptionneur.Text + "', '" + DatePrisEnCharge.Text + "'", connection);
    			}
    			else
    			{
    				command = new SqlCommand("INSERT INTO MACHINE(M_IDMAT, M_NUMCLT, M_NUMCTACT, M_NOMMAT, M_CONFMAT, M_NOMUTIL, M_RAP_RESP, M_RESINTER) VALUES('" + NumMachine.Text + "', '" + NumClt.Text + "', '" + NumContact.Text + "','" + NomMachine.Text +"', '" + ConfigMachine.Text + "', '" + NomUtMachine.Text + "', '" + RespUt.Text + "', '" + RaisonInter.Text + "'", connection);
    				command = new SqlCommand("INSERT INTO INTERVENTION(IN_NUMINTER, C_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES('" + NumInter.Text + "', '" + NumClt.Text + "', '" + NumClt.Text + "','" + NumMachine.Text +"', '" + RaisonInter.Text + "', '" + Dépositaire.Text + "', '" + Réceptionneur.Text + "', '" + DatePrisEnCharge.Text + "'", connection);			
    			}
    merci d'avance

  3. #3
    Membre très 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
    Par défaut
    je crois que tu devras utiliser deux acces a ta base de données (et peut etre forcement): l'un pour voir si NumMachine existe dans ta bdd, l'autre pour insérer.
    Pour le 1er ce sera un truc du genre regarde si ce code machine existe et bien evidemment tu utilises un datareader, s'il te renvoit un resultat, c'est que ce code existe.
    Le 2eme ce sera pour insérer mais faudra faire un test (avec un booléen) pour voir si le 1er acces t'avait renvoyé un resultat et si oui tu ne fais pas ce deuxieme acces (pour ce code machine)

  4. #4
    Membre éprouvé
    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
    Par défaut réponse à fally
    Ok.

    en gros ce que tu me conseillerais de faire c'est :
    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
    // Code permettant de remplir la base de données.
    			SqlConnection connection;
    			SqlCommand command;
     
    			connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI");
     
    			// Si Le NumMachine existe dans la base
    			// alors on l'enregistre pas
    			// sinon on l'enregistre.
    			command = new SqlCommand ("Select M_IDMAT FROM MACHINE WHERE M_IDMAT= '" + NumMachine.Text + "'");
    			Typeretour mIdMat = (Typeretour) commandselect .executeScalar();
    			if (NumMachine==mIdMat)
    			{
    				command = new SqlCommand("INSERT INTO INTERVENTION(IN_NUMINTER, C_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES('" + NumInter.Text + "', '" + NumClt.Text + "', '" + NumClt.Text + "','" + NumMachine.Text +"', '" + RaisonInter.Text + "', '" + Dépositaire.Text + "', '" + Réceptionneur.Text + "', '" + DatePrisEnCharge.Text + "'", connection);
    			}
    			else
    			{
    				command = new SqlCommand("INSERT INTO MACHINE(M_IDMAT, M_NUMCLT, M_NUMCTACT, M_NOMMAT, M_CONFMAT, M_NOMUTIL, M_RAP_RESP, M_RESINTER) VALUES('" + NumMachine.Text + "', '" + NumClt.Text + "', '" + NumContact.Text + "','" + NomMachine.Text +"', '" + ConfigMachine.Text + "', '" + NomUtMachine.Text + "', '" + RespUt.Text + "', '" + RaisonInter.Text + "'", connection);
    				command = new SqlCommand("INSERT INTO INTERVENTION(IN_NUMINTER, C_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES('" + NumInter.Text + "', '" + NumClt.Text + "', '" + NumClt.Text + "','" + NumMachine.Text +"', '" + RaisonInter.Text + "', '" + Dépositaire.Text + "', '" + Réceptionneur.Text + "', '" + DatePrisEnCharge.Text + "'", connection);			
    			}
    				connection.Open();
    			try
    			{
    				command.ExecuteNonQuery();
    			}
    			finally
    			{
    				connection.Close();
    			}
    mais malheureusement, il me dise que :
    C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(701): Le nom 'mIdMat' n'existe pas dans la classe ni dans l'espace de noms 'SuiviClient_Distrib_Info.NouvelleIntervention'

    C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(700): Le type ou le nom d'espace de noms 'Typeretour' est introuvable (une directive using ou une référence d'assembly est-elle manquante*?)
    merci d'avance!

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut
    M_IDMAT c'est quoi? une table?? un repertoir de machine identifier par NumMachine??


    pour savoir si quelque chose existe le plus simple

    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
    SELECT COUNT(*) FROM MaTable WHERE CodeMachine = "MACHINE01"
     
    if(DataTable.Rows.Count == 0)
    {
       // AUCUN ENREGISTREMENT CORRESPONDANT
    }
    else if(DataTable.Rows.Count == 1)
    {
       // 1 ENREGISTREMENT
    }
    else if(DataTable.Rows.Count > 1)
    {
       // BEAUCOUP D'ENREGISTREMENT :P
    }
    else
    {
       // MON DATATABLE EST UN DATATABLE EXTRA-TERRESTRE CAR YA PAS D'AUTRE POSSIBILITE
    }
    tu execute la requete SELECT (adapter a tes besoin) et tu stock le resultat de celle ci dans une DataTable

  6. #6
    Membre éprouvé
    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
    Par défaut réponse à TheBlackReverand
    ID_MAT est un champ de ma table MACHINE.

    Ben je vais essayer cela et je vous tiens tous au courant.

    merci a vous

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut
    ok donc la requete seras

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) FROM MACHINE WHERE ID_MAT = "Machine01"
    COUNT est une fonction integret à SQL qui conte le nombre d'enregistrement

    j'avais oublier de le precisè

  8. #8
    Membre éprouvé
    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
    Par défaut réponse à TheBlackReverand
    T'inquiète pas je le savais que même pour "COUNT".

    Mon problème maintenant c'est qu'il me di :
    C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(705): Le type ou le nom d'espace de noms 'DataTable' est introuvable (une directive using ou une référence d'assembly est-elle manquante*?)
    merci d'avance!!

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut
    les espaces de noms sont comparable a d'enorme classeur qui stock des fonctions

    la tu n'as pas ouvert le bon classe donc soit tu utilise souvent le classeur en question(System.Data) et donc tout en haut tu ajout

    ou tu utilise très très peut le namespace System.Data et du met

    au lieu de DataTable pour qu'il sache ou aller le chercher

    tout sa c'est se qu'on appel les references

    sa fait parties des bases donc a la fin de ton projet(ou en meme temps) je te conseil de choper quelque tutorial ou bien le livre

    "Le guide du programme - C#" d'environ 600page pour bien assimilè les bases car c'est super important et c'est tout bête

  10. #10
    Membre éprouvé
    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
    Par défaut réponse à TheBlackReverand
    Je viens d'essayer de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(System.Data.DataTable.Rows.Count == 0)
    			{
    				command = new SqlCommand("INSERT INTO MACHINE(M_IDMAT, M_NUMCLT, M_NUMCTACT, M_NOMMAT, M_CONFMAT, M_NOMUTIL, M_RAP_RESP, M_RESINTER) VALUES('" + NumMachine.Text + "', '" + NumClt.Text + "', '" + NumContact.Text + "','" + NomMachine.Text +"', '" + ConfigMachine.Text + "', '" + NomUtMachine.Text + "', '" + RespUt.Text + "', '" + RaisonInter.Text + "'", connection);
    				command = new SqlCommand("INSERT INTO INTERVENTION(IN_NUMINTER, C_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES('" + NumInter.Text + "', '" + NumClt.Text + "', '" + NumClt.Text + "','" + NumMachine.Text +"', '" + RaisonInter.Text + "', '" + Dépositaire.Text + "', '" + Réceptionneur.Text + "', '" + DatePrisEnCharge.Text + "'", connection);			
    			}
    			else if(System.Data.DataTable.Rows.Count > 1)
    			{
    				command = new SqlCommand("INSERT INTO INTERVENTION(IN_NUMINTER, C_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES('" + NumInter.Text + "', '" + NumClt.Text + "', '" + NumClt.Text + "','" + NumMachine.Text +"', '" + RaisonInter.Text + "', '" + Dépositaire.Text + "', '" + Réceptionneur.Text + "', '" + DatePrisEnCharge.Text + "'", connection);			
    			}
    et il m'affiche l'erreur suivant :
    C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(707): Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'System.Data.DataTable.Rows'

    C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(702): Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'System.Data.DataTable.Rows'
    J'ai regardé sur des site pour DataTable... mais je trouve pas comment faire.

    merci d'avance!!

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut
    ta methode est en static?

    peut tu copier se qu'il ya avans que tu traite ton morceau de code(creation DataTable, initialisation....)

  12. #12
    Membre éprouvé
    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
    Par défaut réponse à TheBlackReverand
    Voici le reste du 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
    private void Imprimer_Click(object sender, System.EventArgs e)
    		{
    			// Code permettant de remplir la base de données.
    			SqlConnection connection;
    			SqlCommand command;
     
    			connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI");
     
    			// Si Le NumMachine existe dans la base
    			// alors on l'enregistre pas
    			// sinon on l'enregistre.
    command = new SqlCommand("SELECT COUNT(*) AS NB_IDMAT FROM MACHINE WHERE M_IDMAT='" + NumMachine.Text + "'", connection);
    			if(System.Data.DataTable.Rows.Count == 0)
    			{
    				command = new SqlCommand("INSERT INTO MACHINE(M_IDMAT, M_NUMCLT, M_NUMCTACT, M_NOMMAT, M_CONFMAT, M_NOMUTIL, M_RAP_RESP, M_RESINTER) VALUES('" + NumMachine.Text + "', '" + NumClt.Text + "', '" + NumContact.Text + "','" + NomMachine.Text +"', '" + ConfigMachine.Text + "', '" + NomUtMachine.Text + "', '" + RespUt.Text + "', '" + RaisonInter.Text + "'", connection);
    				command = new SqlCommand("INSERT INTO INTERVENTION(IN_NUMINTER, C_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES('" + NumInter.Text + "', '" + NumClt.Text + "', '" + NumClt.Text + "','" + NumMachine.Text +"', '" + RaisonInter.Text + "', '" + Dépositaire.Text + "', '" + Réceptionneur.Text + "', '" + DatePrisEnCharge.Text + "'", connection);			
    			}
    			else if(System.Data.DataTable.Rows.Count > 1)
    			{
    				command = new SqlCommand("INSERT INTO INTERVENTION(IN_NUMINTER, C_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES('" + NumInter.Text + "', '" + NumClt.Text + "', '" + NumClt.Text + "','" + NumMachine.Text +"', '" + RaisonInter.Text + "', '" + Dépositaire.Text + "', '" + Réceptionneur.Text + "', '" + DatePrisEnCharge.Text + "'", connection);			
    			}
    ceci appartient au code du bouton qui me permet de faire ce que je souhaite(réaliser l'enregisteement...)

    ensuite voici le code se situant tout en haut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    merci d'avance!!

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut
    normale que sa marche pas

    trouve, dans ton code, ou est ce que tu met en relation "command" qui va executer la requete SQL et "DataTable" qui va contenir le resultat

    DataTable n'est ni plus ni moins qu'un objet qui va contenir des colonnes et des lignes comme un tableau

    il faut donc declarè une variable de type DataTable, l'instancier et la remplir de ton command


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.Data.DataTable _MaDataTable = new System.Data.DataTable();
    _MaDataTable = command.ExecuteQuery();
    je suis plus sur pour le ExecuteQuery
    sinon du lance en debug et tu regard se que contient _MaDataTable avec l'avoir executer

    ensuite tu peut fair _MaDataTable.Rows.Count pour obtenir le nombre de ligne(soit le nombre d'enregistrement correspondant a ta requete)


    le DataTable est fort pratique, tu peut le liè a une grille pour afficher toutes tes infos en 5 lignes de codes ou encore a des boite texte.

  14. #14
    Membre éprouvé
    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
    Par défaut réponse à TheBlackReverand
    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
    private void Imprimer_Click(object sender, System.EventArgs e)
    		{
    			// Code permettant de remplir la base de données.
    			SqlConnection connection;
    			SqlCommand command;
    			System.Data.DataTable _MaDataTable = new System.Data.DataTable();
    			connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI");
     
    			// Si Le NumMachine existe dans la base
    			// alors on l'enregistre pas
    			// sinon on l'enregistre.
    			command = new SqlCommand("SELECT COUNT(*) AS NB_IDMAT FROM MACHINE WHERE M_IDMAT='" + NumMachine.Text + "'", connection);
    			if(_MaDataTable.Rows.Count == 0)
    			{
    				command = new SqlCommand("INSERT INTO MACHINE(M_IDMAT, M_NUMCLT, M_NUMCTACT, M_NOMMAT, M_CONFMAT, M_NOMUTIL, M_RAP_RESP, M_RESINTER) VALUES('" + NumMachine.Text + "', '" + NumClt.Text + "', '" + NumContact.Text + "','" + NomMachine.Text +"', '" + ConfigMachine.Text + "', '" + NomUtMachine.Text + "', '" + RespUt.Text + "', '" + RaisonInter.Text + "'", connection);
    				command = new SqlCommand("INSERT INTO INTERVENTION(IN_NUMINTER, C_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES('" + NumInter.Text + "', '" + NumClt.Text + "', '" + NumClt.Text + "','" + NumMachine.Text +"', '" + RaisonInter.Text + "', '" + Dépositaire.Text + "', '" + Réceptionneur.Text + "', '" + DatePrisEnCharge.Text + "'", connection);			
    			}
    			else if(_MaDataTable.Rows.Count > 1)
    			{
    				command = new SqlCommand("INSERT INTO INTERVENTION(IN_NUMINTER, C_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES('" + NumInter.Text + "', '" + NumClt.Text + "', '" + NumClt.Text + "','" + NumMachine.Text +"', '" + RaisonInter.Text + "', '" + Dépositaire.Text + "', '" + Réceptionneur.Text + "', '" + DatePrisEnCharge.Text + "'", connection);			
    			}
    				connection.Open();
    			try
    			{
    				_MaDataTable = command.ExecuteNonQuery();
    			}
    			finally
    			{
    				connection.Close();
    			}    	
    		}
    mais effectivement cela ne fonctionne pas. L'eereur est la suivante :
    C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(713): Impossible de convertir implicitement le type 'int' en 'System.Data.DataTable'
    merci d'avance

  15. #15
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Je te conseille vivement de consulter l'un des nombreux tutos ADO.net présents sur le net, et même sur ce site.

  16. #16
    Membre éprouvé
    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
    Par défaut réponse à Guulh
    J'ai déja consulté les tuto ADO.NET

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut
    desoler j'ai changer la requete SQL pour une plus simple

    soit tu prend celle que je viens de mettre et tu utilise Rows.Count
    soit tu fait COUNT(*) et tu lis la 1er colonne de la 1er ligne pour avoir le nombre d'enregistrement


    se code devrais fonctionner
    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
    private void Imprimer_Click(object sender, System.EventArgs e)
            {
                // DECLARATIONS
                string RequeteSQL;
                SqlConnection connection;
                SqlDataAdapter _MonDataAdapter;
                System.Data.DataTable _MaDataTable;
     
                // CONNEXION
                connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI");
     
                try
                {
                    connection.Open();
     
                    // RECUPERER LA LISTE DES MACHINES QUI ONT POUR NUMERO NUMMACHINE.TEXT
                    RequeteSQL = "SELECT M_IDMAT FROM MACHINE WHERE M_IDMAT='" + NumMachine.Text + "'";
     
                    _MonDataAdapter = new SqlDataAdapter(RequeteSQL, connection);
     
                    _MaDataTable = new DataTable();
                    _MonDataAdapter.Fill(_MaDataTable);
     
                    // SI IL N'Y EN A PAS
                    if (_MaDataTable.Rows.Count == 0)
                    {
                        command = new SqlCommand("INSERT INTO MACHINE(M_IDMAT, M_NUMCLT, M_NUMCTACT, M_NOMMAT, M_CONFMAT, M_NOMUTIL, M_RAP_RESP, M_RESINTER) VALUES('" + NumMachine.Text + "', '" + NumClt.Text + "', '" + NumContact.Text + "','" + NomMachine.Text + "', '" + ConfigMachine.Text + "', '" + NomUtMachine.Text + "', '" + RespUt.Text + "', '" + RaisonInter.Text + "'", connection);
                        command = new SqlCommand("INSERT INTO INTERVENTION(IN_NUMINTER, C_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES('" + NumInter.Text + "', '" + NumClt.Text + "', '" + NumClt.Text + "','" + NumMachine.Text + "', '" + RaisonInter.Text + "', '" + Dépositaire.Text + "', '" + Réceptionneur.Text + "', '" + DatePrisEnCharge.Text + "'", connection);
                    }
                    // SI IL Y EN A 1 OU PLUS
                    else if (_MaDataTable.Rows.Count > 0)
                    {
                        command = new SqlCommand("INSERT INTO INTERVENTION(IN_NUMINTER, C_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES('" + NumInter.Text + "', '" + NumClt.Text + "', '" + NumClt.Text + "','" + NumMachine.Text + "', '" + RaisonInter.Text + "', '" + Dépositaire.Text + "', '" + Réceptionneur.Text + "', '" + DatePrisEnCharge.Text + "'", connection);
                    }
                }
                finally
                {
                    connection.Close();
                }
            }

  18. #18
    Membre éprouvé
    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
    Par défaut réponse à TheBlackReverand
    Je viens de mettre ton code en rajoutant des choses car ça m'afficher des erreurs mais ça m'affiche toujours une erreur qui est la suivante :
    C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(711): Le type ou le nom d'espace de noms 'DataTable' est introuvable (une directive using ou une référence d'assembly est-elle manquante*?)
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    private void Imprimer_Click(object sender, System.EventArgs e)
    		{
    			// DECLARATIONS
    			string RequeteSQL;
    			SqlConnection connection;
    			SqlCommand command;
    			SqlDataAdapter _MonDataAdapter;
    			System.Data.DataTable _MaDataTable;
     
    			// CONNEXION
    			connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI");
     
    			try
    			{
    				connection.Open();
     
    				// RECUPERER LA LISTE DES MACHINES QUI ONT POUR NUMERO NUMMACHINE.TEXT
    				RequeteSQL = "SELECT M_IDMAT FROM MACHINE WHERE M_IDMAT='" + NumMachine.Text + "'";
     
    				_MonDataAdapter = new SqlDataAdapter(RequeteSQL, connection);
     
    				_MaDataTable = new DataTable();
    				_MonDataAdapter.Fill(_MaDataTable);
     
    				// SI IL N'Y EN A PAS
    				if (_MaDataTable.Rows.Count == 0)
    				{
    					command = new SqlCommand("INSERT INTO MACHINE(M_IDMAT, M_NUMCLT, M_NUMCTACT, M_NOMMAT, M_CONFMAT, M_NOMUTIL, M_RAP_RESP, M_RESINTER) VALUES('" + NumMachine.Text + "', '" + NumClt.Text + "', '" + NumContact.Text + "','" + NomMachine.Text + "', '" + ConfigMachine.Text + "', '" + NomUtMachine.Text + "', '" + RespUt.Text + "', '" + RaisonInter.Text + "'", connection);
    					command = new SqlCommand("INSERT INTO INTERVENTION(IN_NUMINTER, C_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES('" + NumInter.Text + "', '" + NumClt.Text + "', '" + NumClt.Text + "','" + NumMachine.Text + "', '" + RaisonInter.Text + "', '" + Dépositaire.Text + "', '" + Réceptionneur.Text + "', '" + DatePrisEnCharge.Text + "'", connection);
    				}
    				// SI IL Y EN A 1 OU PLUS
    				else if (_MaDataTable.Rows.Count > 0)
    				{
    					command = new SqlCommand("INSERT INTO INTERVENTION(IN_NUMINTER, C_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES('" + NumInter.Text + "', '" + NumClt.Text + "', '" + NumClt.Text + "','" + NumMachine.Text + "', '" + RaisonInter.Text + "', '" + Dépositaire.Text + "', '" + Réceptionneur.Text + "', '" + DatePrisEnCharge.Text + "'", connection);
    				}
    			}
    			finally
    			{
    				connection.Close();
    			} 
    		}
    merci d'avance!!

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut
    bon bin on va lui en mettre de la reference!!!


    tout en haut de ta page rajoute un using

    dans l'explorateur de projet sur le dossier refence clique droit ajouter reference


    par contre quelque chose m'interpel

    tu travaille bien dans un projet windows?
    tu posséde bien le framework 2.0??? (visible dans "?/A propos de visual studio")


    http://www.microsoft.com/downloads/d...DisplayLang=fr

  20. #20
    Membre éprouvé
    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
    Par défaut réponse à TheBlackReverand
    Je travaille avec Visual Studio.NET2003

    Pour Quel est le problème si je n'ai pas la version 2.0??
    je vient de faire : ? --> A propos de Microsoft Visual Studio --> j'ai la version 1.1

    merci d'avance!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2010] Affiche des valeurs sur textbox par rapport d'un combobox
    Par Yousssef Boubaddara dans le forum Excel
    Réponses: 3
    Dernier message: 03/12/2013, 14h14
  2. Réponses: 4
    Dernier message: 20/10/2010, 12h27
  3. Dégradé en actionscript sur clip existant
    Par sinicha dans le forum Flash
    Réponses: 4
    Dernier message: 17/11/2006, 23h30
  4. [FEDORA] Installation sur multiboot existant
    Par Poseidon62 dans le forum RedHat / CentOS / Fedora
    Réponses: 4
    Dernier message: 10/11/2006, 14h39
  5. Réponses: 5
    Dernier message: 13/10/2005, 12h46

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