我的登录应用程序出现问题。我试图根据用户名从数据库中获取用户类型。当我从文本框中传递名称时,用户类型将为null。否则,当我手动声明名称时,它将起作用,并为用户提供类型!!!
这是我的代码:
public string usertype { get { return label3.Text; } set { label3.Text = value; } }
public string username { get { return txtname.Text; } set { txtname.Text = value; } }
private void Login_Load(object sender, EventArgs e)
{
username=txtname.Text;
label3.Text=Users(username);
}
public string Users(string name)
{
using (SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Stock;Integrated Security=True"))
{
string sql = "SELECT usertype FROM[dbo].[LoginTable] where UserName =@UserName";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.Parameters.AddWithValue("@UserName", name);
con.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
usertype = reader["usertype"].ToString();
}
con.Close();
}
}
return usertype;
}
//Main form to access user type for security
Login login = new Login();
string type=login.usertype; //-----usertype null
请注意,我在主窗体中从user_control
访问用户类型,不知道它是否有所不同。
答案 0 :(得分:0)
它的工作原理是将函数位置更改为txtname_TextChanged事件。谢谢大家