NullReferenceException error C#

本文关键字:error NullReferenceException | 更新日期: 2023-09-27 18:13:38

        QueryClass Query;
        string UserName = "";
        int UserId = 0;

        string email = txtEmail.Text;
        string name = txtUserName.Text;
        string phone = txtPhone.Text;
        byte[] buffer = new byte[100];
            UserName = Query.GetUserName(email); //returns a string value
            if (UserName != null)
            {
                MessageBox.Show(UserName + " is already in the database");
            }
            if (Query.AddNewUser(name, email, phone) == true) //returns a bool value
            {
                UserId = Query.GetUserId(email); //returns a int value
                if (Query.AddNewImage(UserId, buffer) == true) //returns a bool value
                {
                    MessageBox.Show("Done..!!");
                }
            }
            MessageBox.Show("Error");  

我得到以下错误后,我点击插入按钮(上面的代码)我的程序。

System.NullReferenceException
Message="Object reference not set to an instance of an object."

我在以下地方得到了异常。(我没有检查其他地方)代码只是停止这些地方,并给出错误。

UserName = Query.GetUserName(email); //returns a string value
if (Query.AddNewUser(name, email, phone) == true) //returns a bool value

谁能帮我修复这个错误?我用的是Visual studio 2010

NullReferenceException error C#

您正在使用Query而实际上没有将其设置为任何内容。您可能需要构造一个实例:

// Change: QueryClass Query;
QueryClass Query = new QueryClass();

不创建实例,当你调用:

 UserName = Query.GetUserName(email);

此时,Query仍然是默认值(对于引用类型是null),并且您将在尝试使用它时获得NullReferenceException

另外,为了遵循正常的。net命名准则,您可能需要考虑将这个变量命名为query(小写),并将类命名为Query(或者,更好的是,一个更具描述性的名称)。