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 :

L'UpdateCommand et les joies qu'il [ne] procure [pas]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Par défaut L'UpdateCommand et les joies qu'il [ne] procure [pas]
    Bonjour à tous,

    Je voudrais mettre à jour un datagrid avec un UpdateCommand. Dans l'execution du code, tout se passe bien... Mais je voudrais que l'update prenne en compte la saisie de l'utilisateur dans la datagrid...
    Voici 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
    try
    			{
    				//Ouverture de la connexion:
    				Cnx4.Open();
    
    				// Création de la requête SQL:
    					
    				
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlDataAdapter1.UpdateCommand = new SqlCommand("UPDATE MATERIELS SET Nom=+ nom  , SN=+ @sn, Type=@type, Modele=@modele, Site=@site, Service=@service, Date_Entree=@dteEnt, Date_Sortie=@dateS, Fin_Leasing=@finleas, IP=@ip, MAC=@mac, Num_Cde=@ncde, Num_Contrat=@ncont, Num_Immo=@nimmo, Date_Inventaire=@dteinv, Commentaires = @comm  WHERE ID=@id", sqlConnection1);
    //Déclaration des Paramètres: sqlDataAdapter1.UpdateCommand.Parameters.Add("@nom",System.Data.SqlDbType.NVarChar, 20, "Nom"); sqlDataAdapter1.UpdateCommand.Parameters.Add("@sn",System.Data.SqlDbType.NVarChar, 50, "SN"); sqlDataAdapter1.UpdateCommand.Parameters.Add("@type",System.Data.SqlDbType.NVarChar, 20, "Type"); sqlDataAdapter1.UpdateCommand.Parameters.Add("@modele",System.Data.SqlDbType.NVarChar, 30, "Modele"); sqlDataAdapter1.UpdateCommand.Parameters.Add("@site",System.Data.SqlDbType.NVarChar, 10, "Site"); sqlDataAdapter1.UpdateCommand.Parameters.Add("@service",System.Data.SqlDbType.NVarChar, 50, "Service"); sqlDataAdapter1.UpdateCommand.Parameters.Add("@dteEnt",System.Data.SqlDbType.NVarChar, 20, "Date_Entree"); sqlDataAdapter1.UpdateCommand.Parameters.Add("@dateS",System.Data.SqlDbType.NVarChar, 20, "Date_Sortie"); sqlDataAdapter1.UpdateCommand.Parameters.Add("@finleas",System.Data.SqlDbType.NVarChar, 20, "Fin_Leasing"); sqlDataAdapter1.UpdateCommand.Parameters.Add("@ip",System.Data.SqlDbType.NVarChar, 15, "IP"); sqlDataAdapter1.UpdateCommand.Parameters.Add("@mac",System.Data.SqlDbType.NVarChar, 35, "MAC"); sqlDataAdapter1.UpdateCommand.Parameters.Add("@ncde",System.Data.SqlDbType.NVarChar, 50, "Num_Cde"); sqlDataAdapter1.UpdateCommand.Parameters.Add("@nimmo",System.Data.SqlDbType.NVarChar, 50, "Num_Immo"); sqlDataAdapter1.UpdateCommand.Parameters.Add("@ncont",System.Data.SqlDbType.NVarChar, 50, "Num_Contrat"); sqlDataAdapter1.UpdateCommand.Parameters.Add("@dteinv",System.Data.SqlDbType.NVarChar, 20, "Date_Inventaire"); sqlDataAdapter1.UpdateCommand.Parameters.Add("@comm",System.Data.SqlDbType.NVarChar, 100, "Commentaires"); SqlParameter param = sqlDataAdapter1.UpdateCommand.Parameters.Add("@id", System.Data.SqlDbType.NVarChar); param.SourceColumn="ID"; param.SourceVersion = DataRowVersion.Original; sqlDataAdapter1.Fill(dsMateriel1,"MATERIELS"); // DataRow ligne = dsMateriel1.Tables["MATERIELS"].Rows[0]; // // ligne["Nom"] =+ @nom; sqlDataAdapter1.Update(dsMateriel1); //Fermeture de la connexion: Cnx4.Close(); }
    En fait, je voudrais pouvoir saisir n'importe quelle valeur dans mon datagrid, et que ca me le mette a jour dans la cellule où je l'ai modifié... Un Update quoi!
    Sauf que ca ne fonctionne pas...
    Help me please!!!

  2. #2
    Membre très actif Avatar de oussi
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 192
    Par défaut
    Salut,
    Il faut que tu intercepte la cellule dont la valeur à été mise à jour et voila comment faire :
    Dans l'événement CellValueChanged du datagrid :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    string val;
                val = dataGridView1[e.ColumnIndex, e.RowIndex].ToString();
    //Ta requête Update
    J'espère que c'est ce que tu voulais.

    @++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Par défaut
    Salut oussi,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    string val;
                val = dataGridView1[e.ColumnIndex, e.RowIndex].ToString();
    //Ta requête Update
    Le dataGridView1 n'existe pas, j'utilise un simple dataGrid.
    Peux-tu me dire ce que sugnifie le "e."??
    je travaille sous Visual Studio 2003, c'est peut-être pour cela que le code ne fonctionne pas...
    As-tu une autre solution? (différente, ou modifiée de celle que tu m'as généreusement fournie?)

    Merci encore!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Par défaut
    oussi,

    Après modification, ta ligne de code fonctionne parfaitement!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string val;
    val = dataGrid1[dataGrid1.CurrentCell.RowNumber, dataGrid1.CurrentCell.ColumnNumber].ToString();
    Merci du fond du coeur de m'avoir aidé!


    Ciaooooo!

  5. #5
    Membre très actif Avatar de oussi
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 192
    Par défaut
    Salut,
    C'est le but des forums.
    Si t'a d'autres questions n'hésite surtout pas.

    @++

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

Discussions similaires

  1. Les joies du fichier rc
    Par broux dans le forum MFC
    Réponses: 2
    Dernier message: 16/10/2008, 11h22

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