这段代码昨天有效,但今天当我开始时,我得到了这个错误。 我不知道发生了什么,数据库仍然连接。
代码:
private void LoginFS_Load(object sender, EventArgs e)
{
SQLFunctions Lgn = new SQLFunctions();
Lgn.ConnectionToday();
SqlCommand cmd = new SqlCommand();
cmd.Connection = SQLFunctions.conn;
int NumOfButtons = 50;
for (int i = 1; i <= NumOfButtons; i++)
{
Button btn = new Button();
{
btn.Tag = i;
btn.Dock = DockStyle.Fill;
btn.Margin = new Padding(10, 10, 10, 10);
cmd.CommandText = "SELECT username FROM Login where id='" + btn.Tag + "'";
btn.Text = cmd.ExecuteScalar().ToString(); // <= ERROR
//ERROR: An unhandled exception of type 'System.NullReferenceException' occurred in. Additional information: Object reference not set to an instance of an object.
string btn_name = cmd.ExecuteScalar().ToString();
btn.Name = btn_name.ToString();
btn.Click += delegate
{
pass_txt.Clear();
username_txt.Text = btn_name;
username_lbl.Text = btn_name;
username_lbl.Visible = true;
pass_txt.ReadOnly = false;
};
}
users_table.Controls.Add(btn);
}
SQLFunctions.conn.Close();
}
我该怎么办,或者为什么会出现此错误? 谢谢
最佳答案
在应用 ToString()
之前检查 cmd.ExecuteScalar()
是否返回任何值
Return Value Type: System.Object The first column of the first row in the result set, or a null reference
https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar(v=vs.110).aspx
关于c# - 从数据库创建按钮 - 发生 System.NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39143867/