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 :

Ajout d'une ligne dans une table


Sujet :

ASP.NET

  1. #1
    Membre confirmé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Points : 457
    Points
    457
    Par défaut Ajout d'une ligne dans une table
    Ou est l'erreur ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cmd.CommandText = "INSERT INTO TblRequestStaging(IdStaging)VALUES(NbRow+1)"
            CnxStaging.Open()
            NbRow = cmd.ExecuteNonQuery
            CnxStaging.Close()
    Ou alors existe t'il un type de champs en SQL qui soit incrementer automatiquement lors de l'ajout , comme dans Acccess

    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Points : 1 111
    Points
    1 111
    Par défaut
    Ben je te retourne la question, ou est l'erreur?

    si tu ne décrit pas ton probleme c'est dur de trouver une solution.

  3. #3
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim value as integer
    value = nbRow + 1
     
    cmd.CommandText = "INSERT INTO TblRequestStaging(IdStaging)VALUES(" + value.ToString +")"
    Mais ca serait mieux avec une requête paramétrée....

  4. #4
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 106
    Points
    3 106
    Par défaut
    Avec un SqlParameter, niveau securité, c'est mieux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim value as integer
    value = nbRow + 1
     
    cmd.CommandText = "INSERT INTO TblRequestStaging(IdStaging)VALUES(@IdStaging)"
    cmd.Parameters.AddWithValue("@IdStaging",value.ToString)
    de cette manière, pas d'injection SQLPossible, pas d'erreur de concaténation ...

  5. #5
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Et, pour ajouter une réponse complémentaire, oui il existe un paramettre qui permet de faire d'un champ un compteur dans SQL. Regarde les propriété des champs lors de la modification de la table.
    Avec SQL 2000 ça s'appelle : "Compteur". En 2005 je sais pas, je l'ai pas sous la main.

  6. #6
    Membre confirmé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Points : 457
    Points
    457
    Par défaut
    Citation Envoyé par zooffy Voir le message
    Et, pour ajouter une réponse complémentaire, oui il existe un paramettre qui permet de faire d'un champ un compteur dans SQL. Regarde les propriété des champs lors de la modification de la table.
    Avec SQL 2000 ça s'appelle : "Compteur". En 2005 je sais pas, je l'ai pas sous la main.

    Bein voila la solution

    En complement, est il possible de connaitre la valeur de l'Id qui vien d'etre ajouter

  7. #7
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Points : 459
    Points
    459
    Par défaut
    Bonjour,

    voilà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO champ1,champ2 (VALUES) 'blablab','blabla'; Select @@Identity
    A bientôt

  8. #8
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    J'utilise un champ id auto incrémenté avec SQL Serveur. Pour les actions de base, j'utilise des SP auto-générées, celle d'insertion ressemble à ça :
    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
    CREATE PROCEDURE [dbo].[NENESSInsert] (
    	@transaction_id nvarchar(20),
    	@status int,
    	@creation_date datetime,
    	@error_message nvarchar(250),
    	@data nvarchar(4000)
    )
     
    AS
     
    SET NOCOUNT ON
     
    INSERT INTO [NENESS] (
    	[transaction_id],
    	[status],
    	[creation_date],
    	[error_message],
    	[data]
    ) VALUES (
    	@transaction_id,
    	@status,
    	@creation_date,
    	@error_message,
    	@data
    )
     
    SELECT SCOPE_IDENTITY()
    GO
    Cette table contient un champ id auto-incrémenté, le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SCOPE_IDENTITY()
    me renvoie la valeur de l'id qui vient d'être généré.

    EDIT :
    Le code C# est le suivant pour l'appel de la SP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void Insert()
            {
                id = Convert.ToInt32(SqlClientUtility.ExecuteScalar("NENESSInsert", transactionId, status, creationDate, errorMessage, data));
            }
    RE-EDIT : SqlClientUtility est une classe de l'assembly SharpCore.Data.

  9. #9
    Membre confirmé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Points : 457
    Points
    457
    Par défaut
    Devrait ressembler a ceci alors

    Sorry je debutes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CnxStaging.Open()
            IdInsert = cmd.CommandText = "SELECT SCOPE_IDENTITY()"
            CnxStaging.Close()

  10. #10
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 106
    Points
    3 106
    Par défaut
    Si tu veux récupérer la dernière valeur insérée dans la base, tu fais ta requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iNSERT INTO TblRequestStaging(IdStaging)VALUES(@IdStaging) ;
    et aprés le ";"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT IDENT_CURRENT('TblRequest')
    et ca te renvoie l'id du dernier enregistrement inséré dans la table

Discussions similaires

  1. Récupérer une information d'une ligne dans une table
    Par Lebas dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/04/2013, 10h24
  2. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  3. [E-00] Syntaxe pour insérer une ligne ou une colonne dans une feuille
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2009, 09h27
  4. Réponses: 3
    Dernier message: 29/01/2008, 12h08
  5. Réponses: 5
    Dernier message: 27/09/2007, 13h39

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