用小巧玲珑查询登录表

时间:2017-09-06 16:27:07

标签: c# sql-server dapper

我是c#的新手,也是小巧的。我写了一个简单的控制台应用程序来模拟登录过程。我正在尝试使用带参数的dapper查询登录表。即使用户和密码正确,我也无法通过。我很欣赏任何成功登录测试的方向。

enter image description here

    public class Login
    {
        public string UserName { get; set; }
        public string Password { get; set; }

        public Login()
        {
        }
        public Login(string username, string password)
        {
            UserName = username;
            Password = password;
        }
    }
    public static class Helper
    {
        public static string Con(string name)
        {
            return ConfigurationManager.ConnectionStrings[name].ConnectionString;
        }
    }

    public class DataAccess
    {
        public List<Login> GetLogin(string username, string password)
        {
            using (IDbConnection connection = new SqlConnection(Helper.Con("Stock")))
            {
                var output = connection.Query<Login>("sp_GetLogin @UserName, @Password", new { UserName = username, Password = password }, commandType:CommandType.Text).ToList();
                return output;
            }
        }
    }
    static void Main(string[] args)
    {

        string txtusername;
        string txtpassword;

        Console.WriteLine("Enter your Username:");
        txtusername = Console.ReadLine();
        Console.WriteLine("Enter your Password:");
        txtpassword = Console.ReadLine();
        Console.WriteLine("Username typed: {0}, Password typed: {1}", txtusername, txtpassword);

        Login login = new Login();


        DataAccess obj = new DataAccess();

        obj.GetLogin(txtusername, txtpassword);

        if (obj != null)
        {
            if (login.Password == txtpassword)
            {
                Console.WriteLine("User credentials successfull");
            }
            else Console.WriteLine("Password don't match");
        }
        else Console.WriteLine("Username don't match");
        Console.ReadLine();
    }

2 个答案:

答案 0 :(得分:0)

    Login login = new Login();

    DataAccess obj = new DataAccess();

    obj.GetLogin(txtusername, txtpassword);
哦,合法。

    DataAccess obj = new DataAccess();

    Login login = obj.GetLogin(txtusername, txtpassword);

您确实需要学习如何调试,逐步完成代码的每一行,检查正在进行的操作以及为什么它不符合您的预期。 http://idownvotedbecau.se/nodebugging

答案 1 :(得分:0)

您没有使用DataAccess.GetLogin的返回值。

var login = obj.GetLogin(txtusername, txtpassword).FirstOrDefault();

然后进行凭证检查。