繁体   English   中英

如何在Visual Studio中搜索数据库? (C#)

[英]How to search database in Visual Studio? (C#)

我正在做一个辅助项目(学生,不是家庭作业,只是出于好奇),这将是我简单的个人密码管理器/保险库。 这将是一个Windows应用程序。 我希望它不仅支持一个用户。 现在我有了登录屏幕和其他功能,因此我努力寻找一种简单有效的方法来检查用户的登录名和密码是否正确。 我将信息存储在一个名为Users的简单SQL表中(下图)。 现在,我想获取布尔结果,数据库中是否为这两个字符串(用户名,密码)。 我将在下面包含一些代码和屏幕截图。 任何帮助表示赞赏!

PS:我对mySQL(Oracle)相当熟悉,我只是想找到一个很好的方法来做到这一点而又不荒谬。 :)

namespace KeyLocker.Database {
[Serializable]
public class UserDatabase {
    public void AddUser(string username,string password,string question,string answer) {
        using(var db = new KeyLockerContext()) {
            db.Add(new User { Username = username,Password = password,SecurityQuestion = question,SecurityAnswer = answer });
            db.SaveChanges();
        }
    }

    public bool CheckUser(string username,string password) {
        using(var db = new KeyLockerContext()) {
            /*here i need to find out if username is present in database
              and if it is, i need to find out if the password is correct*/
        }
    }
}

}

表用户屏幕截图

表SQL详细信息

乍一看,执行您的想法的最简单的代码似乎是:

public bool CheckUser(string username,string password) {
    using(var db = new KeyLockerContext()) {

        // Check if that combination already exists in DB.
        var result = db.Users.Where(x => x.Username == username && x.Password == password).SingleOrDefault();

        // See if result has a value, SingleOrDefault() returns null if no match
        return (result == null);
    }
}

编辑/免责声明:由于似乎有些混乱,所以这是一种有关如何快速检查数据库中是否存在带有某些值的对象的想法,而不是完整的身份验证库。 您永远不应存储明文密码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM