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

ASP.NET Discussion :

[C#] Probleme d'insertion dans un reader


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 50
    Points : 37
    Points
    37
    Par défaut [C#] Probleme d'insertion dans un reader
    Coucou,

    désolé pour le titre du post, je savais pas trop quoi mettre

    Voili voilou, on commencec a me connaitre dans le coin mais j'apprend !!

    Lors d'un appel a une fonction par click sur mon calendrier, je voudrai supprimer les lignes d'une table et les remplacer par d'autre

    Alors voici ce que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private void Calendar1_SelectionChanged(object sender, System.EventArgs e)
    		{
    			System.DateTime maDate = Calendar1.SelectedDate;
    			myComponent.vehiculesDisponnible(maDate);
    			IdDate.Text = Calendar1.SelectedDate.ToShortDateString();
     
    		}
    j'appel ma fonction en passant en parametre ma date selectionnée.

    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
    public void vehiculesDisponnible(System.DateTime maDate)
    		{
    			string strConnexion = "workstation id=SSAPST99;packet size=4096;user id=admdb01;data source=\"SOCCIB6\\TES" +
    				"T\";persist security info=False;initial catalog=master;password=admdb-01";
    			//supprime toute les lignes de la table Vehicules disponnibles
    			string deleteRequete = "DELETE FROM TableVD";
     
    			//Selectionne les lignes de la Table Vehicule où la Date selectionnée 
    			//dans le calendrier ne correspond pas au reservation enregistrées.
    			string strRequete = "SELECT * FROM TableV WHERE Date != '" +maDate+ "'"; 
     
     
    			try 
    			{ 
    				SqlConnection oConnection = new SqlConnection(strConnexion);
    				//Commande de suppression
    				SqlCommand delCommand = new SqlCommand(deleteRequete,oConnection);
     
    				//Commande de Lecture des lignes de Véhicules Disponnibles
    				SqlCommand lectureCommand = new SqlCommand(strRequete,oConnection); 
     
    				oConnection.Open(); 
    				delCommand.ExecuteNonQuery();
    				SqlDataReader monLecteur = lectureCommand.ExecuteReader();
     
    				//Lecture sur la base de véhicules dont la reservation n'est pas enregistrée
    				while(monLecteur.Read())
    				{
    					string monVehicule = monLecteur["NomV"].ToString();
     
    					//requete d'insertion des véhicules disponnibles dans la table TableVD
    					string strRequete2 = "INSERT INTO TableVD VALUES ('" +monVehicule+ "')";
    					SqlCommand maCommand = new SqlCommand(strRequete2,oConnection); 
     
    					maCommand.ExecuteNonQuery();
     
    				}
    				oConnection.Close(); 
     
    			} 
    			catch (Exception e) 
    			{ 
    				Console.WriteLine("L'erreur suivante a été rencontrée :" + e.Message); 
    			} 
     
    		}
    Normalement je l'ai aps trop mal commenté, mais j'vais en rajouter un peu

    Je supprime bien mes lignes, ca ca marche !
    Mais apres, je lit les lignes uniquement où mon champ "date" diffère de celle selectionnée... jusque la j'ai bon je crois ?

    Pour chaque ligne lue, je voudrai inserer dans une autre table (TableVD) les nom (NomV) de mes véhicules.

    Alors j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    while(monLecteur.Read())
    				{
    					string monVehicule = monLecteur["NomV"].ToString();
     
    					//requete d'insertion des véhicules disponnibles dans la table TableVD
    					string strRequete2 = "INSERT INTO TableVD VALUES ('" +monVehicule+ "')";
    					SqlCommand maCommand = new SqlCommand(strRequete2,oConnection); 
     
    					maCommand.ExecuteNonQuery();
     
    				}
    Mais rien ne s'incere.
    Pourtant en testant, n'étant pas totalement stupide, j'ai cliqué sur une date existant dans mes reservation et une autre pour voir...

    Alors peut etre que je ne peut pas inserer dans ma boucle While ?

    Si c'est ca, dite moi comment je pourrai m'en sortir

    THX ALL

    Erwan

  2. #2
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Tu ne peux pas executer deux reader à la fois avec la même connexion...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Bon voila, petit apprenti se sert de vos conseil et enfin arrive a se débrouiller un peu

    Pour les débutant, je laisse les trace de ce que j'ai fait, ca peut toujours aider :

    But : Modification d'une table de "vehicule" a partir d'une autre table de vehicule et de dates. Pour repertorié les vehicules libre a une date donnée par un calendrier.

    Dans ma WebForm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private void Calendar1_SelectionChanged(object sender, System.EventArgs e)
    		{
    			System.DateTime maDate = Calendar1.SelectedDate;
    			myComponent.vehiculesDisponnible(maDate);
    		}
    En cliquant sur une date de mon calendrier, j'agit sur la fonction suivante :

    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
    public void vehiculesDisponnible(System.DateTime maDate)
    		{
    			string strConnexion = "workstation id=SSAPST99;packet size=4096;user id=admdb01;data source=\"SOCCIB6\\TES" +
    				"T\";persist security info=False;initial catalog=master;password=admdb-01";
    			//supprime toute les lignes de la table Vehicules disponnibles
    			string deleteRequete = "DELETE FROM TableVD";
     
    			//Selectionne les lignes de la Table Vehicule où la Date selectionnée 
    			//dans le calendrier ne correspond pas au reservation enregistrées.
    			string strRequete = "SELECT * FROM TableV WHERE Date != '" +maDate+ "' or Date IS NULL"; 
     
     
    			try 
    			{ 
    				SqlConnection oConnection = new SqlConnection(strConnexion);
    				//Commande de suppression
    				SqlCommand delCommand = new SqlCommand(deleteRequete,oConnection);
     
    				//Commande de Lecture des lignes de Véhicules Disponnibles
    				SqlCommand lectureCommand = new SqlCommand(strRequete,oConnection); 
     
    				oConnection.Open(); 
    				delCommand.ExecuteNonQuery();
     
    				SqlDataReader monLecteur = lectureCommand.ExecuteReader();
    				while(monLecteur.Read())
    				{
    					string vehicule = monLecteur["NomV"].ToString();
    					insertionVD(vehicule);
    				}
    			} 
    			catch (Exception e) 
    			{ 
    				Console.WriteLine("L'erreur suivante a été rencontrée :" + e.Message); 
    			} 
     
    		}
    Deja j'efface les champ de ma table a remplir. Ensuite je lance un reader sur les lignes dont la date ne correspond pas avec la selection.

    Ensuite j'insert les vehicule selectionner dans le reader au moyen d'une tite fonction :




    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
    public void insertionVD(string vehicule)
    		{
    			string strConnexion = "workstation id=SSAPST99;packet size=4096;user id=admdb01;data source=\"SOCCIB6\\TES" +
    				"T\";persist security info=False;initial catalog=master;password=admdb-01";
     
    			string strRequete = "INSERT INTO TableVD(VehiculeD) VALUES('" +vehicule+ "')"; 
    			try 
    			{ 
    				SqlConnection oConnection = new SqlConnection(strConnexion); 
    				SqlCommand oCommand = new SqlCommand(strRequete,oConnection); 
    				oConnection.Open(); 
    				oCommand.ExecuteNonQuery(); 
    				oConnection.Close(); 
     
    			} 
    			catch (Exception e) 
    			{ 
    				Console.WriteLine("L'erreur suivante a été rencontrée :" + e.Message); 
    			} 
    		}

    Apres j'ai plus qu'a faire un dataView sur ma tableVD et l'afficher sous ma DDL et le tour et jouer pour moi !!

    YAYOO

    et apparement ca marche bien.
    Ma table se met bien a jour.

    Y'avais surement plus simple mais bon, on optimisera plus tard

    THX aux gosu qui m'ont aidé !

    Erwan

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme d'insertion dans une transaction
    Par iam dans le forum Bases de données
    Réponses: 1
    Dernier message: 17/05/2006, 10h18
  2. Probleme d'insertion dans SQLSrv lors d'un traitement massif
    Par Bradarys dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/12/2005, 11h27
  3. [interbase6]probleme d'insertion dans une table
    Par macadam314 dans le forum Bases de données
    Réponses: 10
    Dernier message: 22/02/2005, 14h21
  4. [ADO.NET] Problème avec Insert dans base de données
    Par mpascolo dans le forum Accès aux données
    Réponses: 9
    Dernier message: 24/01/2005, 09h36
  5. Probleme d'insertion dans la base de données
    Par PrinceMaster77 dans le forum ASP
    Réponses: 5
    Dernier message: 11/06/2004, 16h21

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