我是c#的新手,也是小巧的。我写了一个简单的控制台应用程序来模拟登录过程。我正在尝试使用带参数的dapper查询登录表。即使用户和密码正确,我也无法通过。我很欣赏任何成功登录测试的方向。
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();
}
答案 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();
然后进行凭证检查。