【问题标题】:C# Ms-access Getting details from databaseC# Ms-access 从数据库中获取详细信息
【发布时间】:2015-07-24 14:32:01
【问题描述】:

我使用 SQL、OLEDB 提供程序创建了一个登录表单,它会提示用户输入名称和密码,如果两者都与 Microsoft Access 数据库中的用户名和密码记录匹配,那么它会将它们定向到不同的表单,但是我不知道如何访问他们的所有信息,例如姓名、姓氏和年龄来显示它,因为这显然需要与他们登录的身份相关联。

如果成功,我可以将其链接到他们在登录文本框中输入的名称吗?或者是否有更好的方法来加载他们的详细信息,具体取决于谁登录?

【问题讨论】:

  • 这是否与包含的mysql标签远程相关?

标签: c# winforms ms-access login oledb


【解决方案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) 登录表格。 if(Login.Authenticate(txtUserName.Text,txtPassword.Text){ //如果为真,则指向另一个表单。通过这样做,它还设置了该类的 loggedUser 属性。 }else{ //访问拒绝逻辑}

(2)主窗体状态栏显示名称等其他场景。

statusBarLabelUserName.Text=Login.LoggedUser.Name;
statusBarLabelSurname.Text=Login.LoggedUser.surname;

【讨论】:

    【解决方案2】:

    根据您的 Access 数据库的结构和所涉及的表,个人详细信息可能会与某种唯一的用户 ID 相关联。

    这就是您应该用来获取他们的数据的方法。登录成功后,您应该使用用户ID 来获取您需要的详细信息。

    【讨论】:

    • 对不起,我忘了包含,所有表都包含 memberID 作为外键。你知道我会怎么做吗?
    • 好吧,您在问题中并没有包含太多细节。但是,如果您正在运行身份验证,则查询应该非常简单。登录成功后,您需要在会话变量中设置 memberID,当用户浏览网站时,memberID 将用于为该用户选择数据。
    • 好的,谢谢!对不起,我缺乏细节,我想不出更好的方式来描述它:)。
    • 这是否有助于回答您的问题?
    • 是的,Nduerere 提供的答案让我详细了解了如何解决这个问题,谢谢 :)
    猜你喜欢
    • 1970-01-01
    • 2017-07-19
    • 2012-12-13
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    相关资源
    最近更新 更多