begin process at 2012 05 28 11:52:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

WebForms

 > 

Autre

 > 

Récupere la clé primaire apres insertion


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Récupere la clé primaire apres insertion

lundi 2 juin 2008 à 09:29:32 | Récupere la clé primaire apres insertion

lg022

Bonjour à tous
voila j'essaye depuis hier après midi de récupérer la clé primaire d'un formview après insertion
dans mon formview page 1.aspx j'ai une clé se nommant "Id_P" en compteur de1 à 1 (je travaille sous SQL 2000)
et j'aimerais récupérer cette valeur dans un autre champ se situant dans une autre page2.aspx (car je travaille sur des pages web)

dans la page1 la clé est cachée mais lors de l'insertion vers ma base de données elle s'est incrémentée

J'espere avoir été assez explicite dans mon probleme, n'hesitez pas pour d'eventuelle question
Merci
lundi 2 juin 2008 à 13:45:08 | Re : Récupere la clé primaire apres insertion

lg022

Personne a une idée ca m'embete d'est super important j'ai lu un fichier sur comment récuperer la clé primaire de Magali mais je n'y arrive pas

1.                'Pour récupérer l'identifiant d'un nouvel enregistrement et être sûr que ce soit bien l' enregistrement qui nous interesse, rien de mieux qu'une procédure stockée.

2.                 

3.                 

4.                'Nous vous proposons ici une méthode simple qui ne nécessite pas de de==procédure stockée et qui évite de faire un select avec l'ensemble des données que l'on vient d'insérer dans la base de données.

5.                 

6.                 

7.                'Cette méthode utilise @@IDENTITY et consiste à exécuter la requête INSERT suivie d'une requête SELECT @@IDENTITY dans le même recordset.

8.                 

9.                 

10.            'Voici la requête :

11.             

12.            "INSERT INTO Table ( Champ(s) ) VALUES ( valeur(s) ); SELECT @@IDENTITY as ID"

13.             

14.             

15.            'Vous trouverez ci-dessous un exemple en ASP utilisant la récupération de l'ID :

16.             

17.             

18.            'Dans cet exemple, on insere la valeur "test" dans le champ Test de la Table Test ayant comme clé primaire le champ ID.

19.             

20.             

21.             

22.            SQL="INSERT INTO Test (Test) VALUES ('test'); SELECT @@IDENTITY as ID"

23.             

24.            ...

25.             

26.            Set rs = MyCon.Execute(SQL,,1)   '=> les requêtes seront exécutée telle quelles sont données l'une après l'autre

27.             

28.            Set rs= rs.NextRecordset      '=> la données retournée par la deuxième requête (le deuxième recordset) sera l'identifiant

29.             

30.            ...            '=> de l'enregistrement inséré par la première requête.

31.             

32.            ID=rs("ID")

33.             

34.             

35.            '-------------------------------------

36.             

37.            la commande Execute a trois arguments parfois optionnel :

38.             

39.            Execute(SQL, Paramètres, Options )

40.             

41.            '=> SQL : la variable contenant les requêtes à exécuter

42.             

43.            '=> Paramètres : (optionnel) tableau contenant les paramètres de(s) requête(s).

44.             

45.            '=> Options : défini comment doit être interprété la commande execute.

46.             

47.             

48.            'Options peut prendre entre autres les valeurs :

49.             

50.            '-1    <=>    adCmdUnspecified    => le type n'est pas spécifié

51.             

52.            '1    <=>    adCmdText   => type texte : SQL sera évalué comme tel

53.             

54.            '2   <=>   adCmdTable   => SQL sera évalué comme un nom de table et la valeur de chaque champ sera retournée.

55.             

56.            '4   <=>   adCmdStoredProc   => SQL sera évalué comme le nom d'une procédure stockée

57.             

58.            '8   <=>   adCmdUnknown   => valeur par défaut : type inconnu

59.             

60.            '256   <=>   adCmdFile   => SQL sera évalué comme étant un nom de fichier

61.             

62.            '512   <=>   adCmdTableDirect   => SQL sera évalué comme un nom de table

63.             

64.             

65.            ....

66.             

67.            '-------------------------------------

68.             

69.              

 Merci d'avance

lundi 2 juin 2008 à 16:09:34 | Re : Récupere la clé primaire apres insertion

nhervagault

Administrateur CodeS-SourceS
Salut,

C'est quoi ce micmac tu as du code ASP.NET (forview)et ASP(set, NextRecordset)

Pour info voici une méthode

sql = "INSERT .....;SET @iD = SCOPE_IDENTITY()"

  System.Data.SqlClient.SqlParameter parameterKey = new System.Data.SqlClient.SqlParameter();
       try{
  
cmd = ...
                cmd.CommandText = sql;
                parameterKey.DbType = DbType.Int64; //long
                parameterKey.ParameterName = "@iD";
                parameterKey.Direction = ParameterDirection.Output;
                cmd.Command.Parameters.Add(parameterKey );
                cmd.ExecuteNonQuery();
}

            catch (Exception e)
            {
.....
            }
            finally
            {
                if (cmd != null)
                {
                    cmd.Close();
                }
            }
            long key  = (long)parameterKey.Value;

Les parametres en output ne sont renseignés qu'apres fermeture de la commande.

Bon coding
lundi 2 juin 2008 à 16:17:14 | Re : Récupere la clé primaire apres insertion

gabj

Sinon au lieu d'utiliser des numéros auto, utilises des GUID pour tes identifiants (uniqueidentifier sous SqlServer)

JayJay974
lundi 2 juin 2008 à 16:23:29 | Re : Récupere la clé primaire apres insertion

lg022

Merci a tous les 2 pour vos réponses
"Nhervagault" ce n'est pas un micmac je suis en train de créer des formulaires sur des pages web

je ne vois pas ou je dois mettre ton code (sorry) peux tu m'en dire un petit pêu plus? car en code je commence seulement
(j'avais deja vu ce code mais ne sachant ou le mettre je me suis permise de vous contacter)

"gabj" sous sqlServer 2000 j'ai appris que ce n'etait pas le meilleur choix pour une clé primaire non?
lundi 2 juin 2008 à 17:27:40 | Re : Récupere la clé primaire apres insertion

gabj

Tous dépends de ce que tu estimes être un meilleur choix. Tu peux générer ton GUID à partir de ton code C# puis le réutiliser comme identifiant de ton entité en cours. Effectivement le GUID est plutot lourd car il représente une données SQL Server dès plus grandes (ce qui le rend plus lent que les int pour la recherche sur un champs indéxé). Mais si tu as besoin de consolider plusieurs tables à partir d'un datawarehouse, il est complètement adéquat. Les GUID sont également utilisés nativement pour identifier les lignes d'une table lors de réplications.

Donc à toi de choisir.

JayJay974
lundi 2 juin 2008 à 18:43:00 | Re : Récupere la clé primaire apres insertion

nhervagault

Administrateur CodeS-SourceS
Le probleme est que tu programmes en ado sur la plateforme .net,
ce n'est pas conseillé.

Comment rapidement expliquer la bonne methode.

C'est pas propre mais mets le code derriere un bouton par exemple.
et tu mets le resultat dans une label

exemple
  long key  = (long)parameterKey.Value;
label1.text = key.ToString();

Regardes le coach asp.net pour voir comment faire, pour l'asp.net.
Mais ne mélange pas asp3 et asp/net


Bon courage

NB : le code mis est dans mon précédent post est en c#


lundi 2 juin 2008 à 20:48:33 | Re : Récupere la clé primaire apres insertion

lg022

ok je vais essayer ca demain; je suis plus au bureau
c'est ce que je voulais faire le mettre sur le click d'un bouton
je vous dis ca demain

Merci pour tous vos conseils


Cette discussion est classée dans : insertion, apres, clé, primaire, récupere


Répondre à ce message

Sujets en rapport avec ce message

Récuperer la clé primaire d'un Formview apres insertion [ par lg022 ] Bonjour à tousvoila j'essaye depuis hier après midi de récupérer la clé primaire d'un formview après insertiondans mon formview page 1.aspx j'ai une c clé primaire de deux tables différents [ par ravak31 ] Bonjour tout le monde, je travaille en asp.net et ma base de données et SQL Server, et je voudrais savoir comment tester la valeur d'une clé primaire insertion detail view [ par aymen87 ] bonsoirje voudrai inserer des données dans une table en utilisant un detailsview, mais le probleme c'est que evidemment quand j'insere une clé redonda Etudiant déséspéré cherche connaisseur en VB [ par cruise1406 ] Bonjour à tous !Je suis actuellement en stage de fin de DUT et j'ai quelques soucis avec le langage VB.Je dois réaliser un Base de donnée Access. Pour recupéré la clé primaire [ par hudon77 ] Allo!  Je ne suis pas capable de recupéré la clé primaire en vue d'un update ou d'un delete....Voici le code   ProtectedSub<font siz Repérer clé primaire en ASP [ par wattmil ] Bonjour,Je souhaite repérer dans une table donnée d'une base SQL Serveur 2000, en ASP, le champs qui est clé primaire.Est ce possible ?Si oui comment recuperer les resultats d'une requete dans le formulaire utilisé pour l'insertion [ par ravat ] SalutJ'aimerais bien savoir comment afficher le résultat d'une requête dans les champs du même formulaire utilisé pour l'insertion de ces données just supprimer un fichier apres download [ par Jackboy ] Comment je pourrait me prendre pour supprimer un fichier suite a sont download ?faire un lien download vers un fichier x et ensuite supprimer celui ci insertion de données dans access [ par LEIRIA ] bonjour,vous n'auriez pas un petit exemple de formulaire avec un champ txt et un bouton qui fait une insertion dans une base access (sous asp)Très Trè insertion des fichiers [ par 10ahmed10 ] Ahmed10Salut à tous je ne sais comment peut on insérer un fichier de disque dur à un dossier. c'est à dire par un bouton "parcourir" en chercheu


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,154 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales