对象引用未设置为打开新表单的对象c#的实例
本文关键字:表单 对象 实例 设置 新表单 对象引用 | 更新日期: 2023-09-27 17:58:11
- 询问用户的用户名和密码
- 点击按钮,它会检查连接的数据库中的用户名和密码
- 当正确时,它将其ID号存储在一个变量中,默认情况下该变量为0
- 然后我运行一个If语句,如果ID>=0,它需要打开另一个表单。如果不是,它会显示错误消息
第一种情况下的MessageBox如果大小写显示正确的ID(1,2,3任意)现在在Form3上,只需要一个简单的textbox1.text="hi";给我一个错误:
对象引用未设置为对象c#的实例。并显示文本框行。
int IDnumber = 0;
SqlCommand dataCommand = new SqlCommand(" SELECT ID FROM leden WHERE [Username]='" + username_txt.Text + "' and [Password]='" + password_txt.Text + "'", SC);
SC.Open();
IDnumber = Convert.ToInt32(dataCommand.ExecuteScalar());
SC.Close();
if (IDnumber >= 1)
{
MessageBox.Show("Logged in, welcome ID number:" + IDnumber, "test");
Form3 f3 = new Form3(IDnumber);
f3.Show();
}
else
{
MessageBox.Show("Wrong Username and/or Password");
}
}
形式3:
public Form3(int _IDnumber)
{
int IDnumber = _IDnumber;
textBox1.Text = "hi";
}
当然,文本框是一个测试,以表明我使用什么文本框并不重要,它只会给我这个错误。是的,我仍然使用未加密的密码,还不知道如何做到
您尚未初始化表单上的组件。添加
InitializeComponent();
在你的构造器的开头。
在Forms构造函数中设置控件不是一个明智的想法,而是在OnLoad
事件中实现这些东西。
MSDN:http://msdn.microsoft.com/en-us/library/360kwx3z(v=vs.90).aspx,如果不想将代码放在构造函数中,请使用OnLoad。