0
votes

Renvoyer le dernier enregistrement d'insertion

Je suis essayé ci-dessous le code pour récupérer le dernier enregistrement inséré. Cela a fonctionné mais il montrait avec des accolades bouclées. Je veux obtenir la dernière valeur d'enregistrement insérée pour imprimer dans une étiquette

Vérifiez ci-dessous lien d'image

C'est la sortie de mon résultat xxx


1 commentaires

Comment avez-vous ajouté le Produit au contexte? À ce stade, vous avez le dernier produit. Pourquoi avez-vous besoin de le retrouver?


4 Réponses :


1
votes

Vous sélectionnez un nouvel objet avec une seule propriété. Donc, query dans ce cas est un objet anonyme. Ce qu'il fait maintenant, c'est convertir le nouvel objet en chaîne, d'où les crochets.

Si vous souhaitez afficher uniquement le champ de nom, vous devez imprimer query.Name sur l'étiquette.


0 commentaires

1
votes

Si vous souhaitez interroger toutes les colonnes:

SELECT TOP (1) Name
FROM [Products] 
ORDER BY ProductID DESC

Cela équivaut à sql:

var query = (from p in context.Products
                         orderby p.ProductID descending
                         select p.Name ).First();

Si vous souhaitez enregistrer toutes les colonnes dans un La variable C # peut être utilisée comme type fort plus tard.

var query = (from p in context.Products
                         orderby p.ProductID descending
                         select p).First();
Console.WriteLine(query.Name);
Console.WriteLine(query.SomeCloumn);

Si vous ne voulez que la colonne Nom et le type fort, vous n'avez pas besoin de nouveau {}

XXX

Cela équivaut à sql:

SELECT TOP (1) *
FROM [Products] 
ORDER BY ProductID DESC


1 commentaires

ressemble à OP n'a besoin que de nom alors nous devrions extraire toutes les colonnes



1
votes

Vous produisez un objet anonyme dans votre requête LINQ, si vous n'avez besoin que du nom, alors ce que vous devez faire est simplement de projeter la propriété nom sans nouveau {} expression qui ne sera qu'une valeur chaîne comme: xxx

et rappelez-vous que premier () lancera une exception au moment de l'exécution si Il n'y a pas de ligne trouvée dans la table de la table pour que nous avons sReveArdefault () qui retournera null au cas où il n'y a pas de ligne: xxx

dans votre exemple de code actuel Vous devez accéder à la propriété nom de votre objet anonyme et que l'objet anonyme n'est pas nécessaire en réalité dans le scénario actuel, Une simple chaîne est suffisante, mais il suffit d'illustrer comment le faire avec les bits de code fournies ici, il s'agit de: xxx

être sûr si Aucune ligne n'existe: xxx

espère qu'il aide.


0 commentaires

1
votes

.First () lève une exception lorsque rien n'est renvoyé, tandis que FirstOrDefault () renvoie null

var query = (from p in context.Products
                         orderby p.ProductID descending
                         select p).FirstOrDefault();


0 commentaires