c# - 从数据库创建按钮 - 发生 System.NullReferenceException

标签 c# sql database button

这段代码昨天有效,但今天当我开始时,我得到了这个错误。 我不知道发生了什么,数据库仍然连接。

代码:

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/

相关文章:

sql - 为 SP 传递负值

sql - 如何在 Ruby on Rails 5 中检索随机 GET 请求?

php - zf2 插入使用 $db->insert($table, $data);风格

c# - 使用 Kerberos、Web API 和 MVC 的示例项目

c# - C# 中 BitConverter.Int64BitsToDouble 的安全性和稳定性问题

C# WPF - GridLength GridUnitType.Auto

MYSQL - 加入多个日期 - 仅从加入中获取第一个

c# - 如何在 Durable Functions 中中止 [ActivityTrigger] 函数

database - 在 PostgreSQL 中为给定表创建序列和自动增量字段的语法

python - 在 django live 应用程序中将 mysql 数据库从 'utf8' 更改为 'utf8mb4' 对数据的影响