返回最后的插入记录

时间:2019-02-17 05:25:45

标签: c# winforms entity-framework

我尝试使用下面的代码来检索最后插入的记录。它奏效,但用花括号显示。我想获取最后插入的记录值以打印在标签中

检查下面的图像链接

This is the output of my result

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

4 个答案:

答案 0 :(得分:1)

您正在选择具有单个属性的新对象。因此,printf("Room Code:"); scanf(" %c", &OneClient.RoomCode); if(OneClient.RoomCode == OneRoom[0].RoomCode) OneClient.TotGuests=OneRoom[0].RoomCode; printf("Total Number of Guests(max %d):", OneRoomClient.TotGuests); 是一个匿名对象。现在要做的是将新对象转换为字符串,从而转换为括号。

如果只想显示名称字段,则需要在标签上打印query

答案 1 :(得分:1)

如果要查询所有列:

if (mysqli_num_rows($ckrs) > 0) {

它等于sql:

if (!empty($recordcode)) {

如果要将所有列保存到C#变量中,则以后可以像强类型一样使用它。

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

如果只需要“名称”列和强类型,则不需要新的{}

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

它等于sql:

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

答案 2 :(得分:1)

您正在linq查询中生成一个匿名对象,如果只需要名称,那么您要做的只是投影name属性,而无需使用new { }表达式,该表达式只是一个{ {1}}值,如:

string

,请记住,如果在string lastInsertedName = (from p in context.Products orderby p.ProductID descending select p.name).First(); 表中找不到行,则First()将在运行时引发异常,因为我们有Products会在其中返回FirstOrDefault()如果没有行:

null

在当前代码示例中,您将需要访问匿名对象上的string lastInsertedName = (from p in context.Products orderby p.ProductID descending select p.name).FirstOrDefault(); 属性,并且在当前情况下实际上并不需要匿名对象,简单的name就足够了,但是在此处说明如何使用提供的代码位做到这一点:

string

为了安全起见,如果不存在任何行:

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

string lastInsertedName = query.name;

希望有帮助。

答案 3 :(得分:1)

.First()在没有返回任何内容时抛出异常,而FirstOrDefault()返回null

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