【问题标题】:To obtain date value from the SQL Server database using linq in C# [closed]在 C# 中使用 linq 从 SQL Server 数据库中获取日期值 [关闭]
【发布时间】:2020-04-24 13:57:54
【问题描述】:

我尝试使用 C# 中的 linq 命令从 SQL Server 获取数据类型为 DateTimeLast_Login_Date 值,但我不知道在

WHERE m.Last_Login_Date==??????? 

当用户点击登录时执行此操作。所以我必须通过电子邮件地址获取特定的用户 ID。

如果可能,请发送解决方案。感谢您的贡献。

var lastLoginDate = from m in db.Members
                    where m.Last_Login_Date ==;

【问题讨论】:

  • 您会发现自己的核心业务本身就错了。你永远不会从 Last_Login_Date 获得用户 ID,你会从用户 ID 获得 Last_Login_Date
  • Where 应该用于从 db 而不是 All 记录中获取实体。其中 x.id == 12345 选择 x.Last_login_date
  • 嗨@HowToGame,欢迎来到SO。没有足够的信息。表Members 是什么样的?包含用户 ID 的列的名称是什么?包含密码的列的名称是什么?

标签: c# asp.net sql-server linq


【解决方案1】:

您尚未提供有关架构的信息,因此我将编造列名来说明。假设列EmailAddress 和数据库上下文类DbClassName,这里是一个示例函数:

private DateTime? GetLastLoginDate(string emailAddress)
{        
    using(var db = new DbClassName())
    {        
        //Find the user
        var user = db.Members.FirstOrDefault(m => m.EmailAddress == emailAddress);
        return user?.Last_Login_Date;
    }
}

此方法将接收一个电子邮件地址(来自登录页面)并通过电子邮件地址查找用户。如果找到则返回上次登录日期,否则返回null

请注意,您不需要密码来查找用户,除非允许多个帐户拥有相同的电子邮件地址(通常情况并非如此)。

请记住,这是一个过于简单的示例。您应该考虑诸如字符串清理和区分大小写之类的事情,但这应该会让您继续前进。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 2017-12-20
    相关资源
    最近更新 更多