在数据库中搜索用户id,并以第二种形式c#显示用户名
本文关键字:用户 二种 显示 搜索 数据库 id | 更新日期: 2023-09-27 18:25:19
我有一个包含列Name、UserID、Password和UserType的表。此外,我有一个登录表单,用户在其中键入用户id/密码组合,选择用户类型(学生或教师),然后单击"确定"按钮。如果存在这种id/密码的组合,程序将根据所选用户类型打开一个新表单-学生或教师表单。我想做的是,当第二个表单打开表单上的标签时,显示:已登录:"姓名"。我知道如果我把代码放在表格1 中
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{}
更改SqlCommand以返回Name而不是UserType:
SqlCommand cmd = new SqlCommand("Select Name from Login where UserID=@id and Password=@pwd", conn);
更新主窗体上的点击事件:
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{}
....