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

Accès aux données Discussion :

[c#] [dataadapter] effacer des ranger dans une base de donne


Sujet :

Accès aux données

  1. #1
    Membre régulier
    Inscrit en
    Août 2002
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 157
    Points : 112
    Points
    112
    Par défaut [c#] [dataadapter] effacer des ranger dans une base de donne
    salut a tous,
    voila je recois une erreur losque je veux effacer des rangers dans ma base de donnees.
    en clair ce que je fais est remplir mon dataset avec les rangers que j'ai envie d'effacer.une fois les rangers chargees , je boucle pour les effecer avec la methode delete ensuite je fais un update avec le dataadapter voici mon 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
     
    	void EraseTheEditedRow()
    		{
     
    			WeekLimite();
    			ds.ProjectTimeEntry.Clear();
    			// data adapter to retrieve data from time entry table
     
    			string cmd = "select * from ProjectTimeEntry where (PrjID=@prjID AND EmpID=@empid AND TeName=@teName AND TeDate>=@back AND TeDate<=@forward)";
    			OleDbDataAdapter daTimeEntry = new OleDbDataAdapter(cmd,connection);
    				OleDbCommandBuilder cb = new OleDbCommandBuilder(daTimeEntry);
    			daTimeEntry.SelectCommand.Parameters.Add("@prjID",OleDbType.Integer);
    			daTimeEntry.SelectCommand.Parameters.Add("@empid",OleDbType.Integer); 
    			daTimeEntry.SelectCommand.Parameters.Add("@teName",OleDbType.LongVarChar);
    			daTimeEntry.SelectCommand.Parameters.Add("@back",OleDbType.Date);
    			daTimeEntry.SelectCommand.Parameters.Add("@forward",OleDbType.Date);
    			daTimeEntry.SelectCommand.Parameters["@prjID"].Value=_ProjectID;	
    			daTimeEntry.SelectCommand.Parameters["@empid"].Value=EmpID;	
    			daTimeEntry.SelectCommand.Parameters["@teName"].Value = _TeName;
    			daTimeEntry.SelectCommand.Parameters["@back"].Value =backwardDate ;
    			daTimeEntry.SelectCommand.Parameters["@forward"].Value =forwardDate ;
    			daTimeEntry.Fill(ds.ProjectTimeEntry);
     
    			foreach(myDataSet.ProjectTimeEntryRow TeRow in ds.ProjectTimeEntry.Rows)
    			{
    				TeRow.Delete();
     
    			}
    			daTimeEntry.Update(ds.ProjectTimeEntry);
    			ds.ProjectTimeEntry.AcceptChanges();
     
    			daTimeEntry.Dispose();
    			cb.Dispose();
     
     
    		}
    seulement je recois cette erreur je ne comprends pas pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Exception Details: System.InvalidOperationException: OleDbCommand.Prepare method requires all variable length parameters to have an explicitly set non-zero Size.
     
    Source Error: 
     
     
    Line 732:				
    Line 733:			}
    Line 734:			daTimeEntry.Update(ds.ProjectTimeEntry);
    Line 735:			ds.ProjectTimeEntry.AcceptChanges();
    Line 736:			
     
     
    Source File: c:\inetpub\wwwroot\worksheetproject\projectformes\timeentry.aspx.cs    Line: 734
    quelqu'un a une idee pourquoi ca ne marche pas ou une autre idee pour effacer ces ranger
    merci a vous,
    j'ai deja utlise le meme principe pour effece une ranger et je n'ai eu aucun probleme

  2. #2
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Salut,

    Je crois que tu dois spécifier la taille max de ton varchar, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    daTimeEntry.SelectCommand.Parameters.Add("@teName",OleDbType.LongVarChar, 50);
    @+

  3. #3
    Membre régulier
    Inscrit en
    Août 2002
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 157
    Points : 112
    Points
    112
    Par défaut
    merci,
    c'est vrais et ca marche
    merci encore

  4. #4
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Tu peux encore simplifier ton code comme 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
    21
    22
    23
    24
    25
    26
    27
    28
    void EraseTheEditedRow() 
          { 
     
             WeekLimite(); 
             ds.ProjectTimeEntry.Clear(); 
             // data adapter to retrieve data from time entry table 
     
             string cmd = "select * from ProjectTimeEntry where (PrjID=@prjID AND EmpID=@empid AND TeName=@teName AND TeDate>=@back AND TeDate<=@forward)"; 
             OleDbDataAdapter daTimeEntry = new OleDbDataAdapter(cmd,connection); 
                OleDbCommandBuilder cb = new OleDbCommandBuilder(daTimeEntry); 
             daTimeEntry.SelectCommand.Parameters.Add("@prjID",OleDbType.Integer).Value=_ProjectID; 
             daTimeEntry.SelectCommand.Parameters.Add("@empid",OleDbType.Integer).Value=EmpID; 
             daTimeEntry.SelectCommand.Parameters.Add("@teName",OleDbType.LongVarChar,50).Value = _TeName; 
             daTimeEntry.SelectCommand.Parameters.Add("@back",OleDbType.Date).Value =backwardDate ; 
             daTimeEntry.SelectCommand.Parameters.Add("@forward",OleDbType.Date).Value =forwardDate ; 
             daTimeEntry.Fill(ds.ProjectTimeEntry); 
     
             foreach(myDataSet.ProjectTimeEntryRow TeRow in ds.ProjectTimeEntry.Rows) 
             { 
                TeRow.Delete(); 
             } 
             daTimeEntry.Update(ds.ProjectTimeEntry); 
             ds.ProjectTimeEntry.AcceptChanges(); 
     
             daTimeEntry.Dispose(); 
             cb.Dispose(); 
     
          }

    @+

  5. #5
    Membre régulier
    Inscrit en
    Août 2002
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 157
    Points : 112
    Points
    112
    Par défaut
    cool merci

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

Discussions similaires

  1. [MySQL] Rentrer des choses dans une base de données garce à un post
    Par BernardT dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/03/2006, 21h07
  2. Comment stocker des images dans une base de données ?
    Par [Silk] dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/07/2005, 11h29
  3. [Conception] Gestion des accents dans une base de données
    Par MiJack dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/07/2005, 11h41
  4. Interet de mettre des fichiers dans une base de donnée
    Par Oberown dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 04/07/2005, 11h35
  5. inserer des images dans une base de données
    Par alilou04 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/06/2004, 18h54

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