2016-05-06 80 views
-2

我有一个程序,用户必须登录,所以他们有一个ID和密码。具有用户登录详细信息的数据库存储在本地.mdf文件中。显示已登录的用户信息

我想设置它,以便在用户登录时,程序的其余部分在右上角显示他们的详细信息,例如他们的名字和他们的ID。

不幸的是,我不知道如何做到这一点,而我浏览过的所有人都使用实际的系统登录,这不是我想要的。

代码登录表单:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Data.SqlClient; 

namespace InventoryManager 
{ 
    public partial class frmLogin : Form 
    { 
     public frmLogin() 
     { 
      InitializeComponent(); 
     } 

     private void frmLogin_Load(object sender, EventArgs e) 
     { 
      this.AcceptButton = btnSubmit; 
     } 

     string cs = @"Data Source= (LocalDB)\v11.0;AttachDbFilename=|DataDirectory|Users.mdf;Integrated Security = True;"; 

     private void btnSubmit_Click(object sender, EventArgs e) 
     { 
      if (txtUserID.Text == "" || txtPassword.Text == "") 
      { 
       MessageBox.Show("Please enter a User ID and Password"); 
       return; 
      } 

      try 
      { 
       SqlConnection con = new SqlConnection(cs); 
       SqlCommand cmd = new SqlCommand("SELECT * FROM tbl_Login WHERE UserID = @userid AND Password = @password", con); 
       cmd.Parameters.AddWithValue("@userid", txtUserID.Text); 
       cmd.Parameters.AddWithValue("@password", txtPassword.Text); 
       con.Open(); 
       SqlDataAdapter adapt = new SqlDataAdapter(cmd); 
       DataSet ds = new DataSet(); 
       adapt.Fill(ds); 
       con.Close(); 
       int count = ds.Tables[0].Rows.Count; 

       if (count == 1) 
       { 
        MessageBox.Show("Login Successful!"); 
        this.Hide(); 
        frmOverview fo = new frmOverview(); 
        fo.Show(); 
       } 

       else 
       { 
        MessageBox.Show("Login Failed"); 
        txtPassword.Text = ""; 
       } 
      } 

      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 
    } 
} 
+1

建议的意见:在将其添加到查询之前对输入进行清理。 –

回答

1

你可以做一些静态类像这样的

public static class LoggedUser 
{ 
    public static string Name { get; set; } 
    public static string Username { get; set; } 

} 
成功登录后

,填充数据类(例如):

 if (count == 1) 
     { 
      MessageBox.Show("Login Successful!"); 
      LoggedUser.Name = ds.Tables[0].Rows[1].ToString(); 
      LoggedUser.Username = ds.Tables[0].Rows[2].ToString(); 
      this.Hide(); 
      frmOverview fo = new frmOverview(); 
      fo.Show(); 
     } 

之后,您可以使用存储在LoggedUser类中的每个表单上的数据项目...

+0

工作,感谢您的帮助:D – iiAaronXiX