我使用SQL,OLEDB Provider创建了一个登录表单,它提示用户输入名称和密码,如果两者都匹配Microsoft Access数据库中的用户名和密码记录,那么它会将它们指向不同的表单,但是,我不知道如何访问他们的所有信息,例如名称,姓氏和年龄显示它,因为这显然需要链接到他们登录的人。
我可以将此链接与他们在登录文本框中输入的名称相关联,如果它成功了,或者是否有更好的方式根据谁登录来加载他们的详细信息?
答案 0 :(得分:1)
我将创建2个类。一个名为Login的静态类,用于处理登录用户的详细信息,权限分配等。用户名和密码将传递给此类中的方法,此处解密,检查是否正确并返回用户实例类:
public static class Login{
public static User LoggedUser {get; private set;}
public static bool Authenticate(string userName, string password){
//(a)Logic to fetch data based on username and pwd. mostly i use Entityframework
var user=context.Users.Find(x=>x.Name=userName && x.Pwd=MethodHelper.Decrypt(password));
LoggedUser=user
return LoggedUser != null;
}
}
使用它: (1)登录表格。 如果(Login.Authenticate(txtUserName.Text,txtPassword.Text){ //如果为真,则指向另一种形式。只需执行此操作,它还会设置此类的loggedUser属性。 } else {// access denied logic}
(2)主要状态栏上的显示名称等其他方案。
statusBarLabelUserName.Text=Login.LoggedUser.Name;
statusBarLabelSurname.Text=Login.LoggedUser.surname;
答案 1 :(得分:0)
根据Access数据库的结构和所涉及的表,可能个人详细信息将与某种唯一用户ID相关联。
这就是你应该用它来获取他们的数据。登录成功后,您应该使用userID来获取所需的详细信息。