在数据库中搜索用户ID并以第二种形式显示用户名c#

时间:2015-12-02 17:34:37

标签: c#

我有一个包含Name,UserID,Password,UserType列的表。 我还有一个登录表单,用户键入用户ID /密码组合,选择userstype(学生或教师)并单击按钮确定。如果存在这样的id /密码组合,程序将打开一个新表单 - 学生或教师表单,具体取决于所选的用户类型。我想要做的是,当第二个表单打开表单上的标签时,表示:登录:“名称”。我知道如果我把代码放在form1

if(rbtnStud.checked)
{
   Students form = new Students (txtUID.Text); 
   formShowDialog; 
   this.Hide();
}

以第二种形式

public Students(string txtBox) 
 { 
     InitializeComponent();  
     lblName.Text = txtBox; 
 }

这将在标签中显示UserID。但是我希望显示表中的Name,而不是UserID。有可能吗?

谢谢。

好的,这是附加信息:我正在使用WinForms 用于从“LoginDB”类中的数据库中提取信息的代码:

            SqlConnection conn = SchoolDB.Connected();
            SqlCommand cmd = new SqlCommand("Select UserType from Login where UserID=@id and Password=@pwd", conn);
            cmd.Parameters.AddWithValue("@id", UserID);
            cmd.Parameters.AddWithValue("@pwd", Password);
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            DataTable dt = new DataTable();
            dt.Load(dr);
            conn.Close();
            return dt;

并在主要表格上:

private void btnLogin_Click(object sender, EventArgs e)
    {
        try
        {
            DataTable result = LoginDB.Login(txtUID.Text, txtpwd.Text);
            if (result.Rows.Count == 1)
            {
                if (rbtnStud.Checked)
                {
                    Students form = new Students(txtUID.Text);
                    form.ShowDialog();
                    this.Hide();
                } 
             else if{}

1 个答案:

答案 0 :(得分:0)

更改SqlCommand以返回Name而不是UserType:

SqlCommand cmd = new SqlCommand("Select Name from Login where UserID=@id and Password=@pwd", conn);

更新主窗体上的click事件:

private void btnLogin_Click(object sender, EventArgs e)
    {
        try
        {
            DataTable result = LoginDB.Login(txtUID.Text, txtpwd.Text);
            if (result.Rows.Count == 1)
            {
                if (rbtnStud.Checked)
                {
                    // pass the name to the students form
                    Students form = new Students(dt.Rows[0]["Name"] as string);
                    form.ShowDialog();
                    this.Hide();
                } 
             else if{}
....