System.NullReferenceException错误

时间:2014-04-01 12:36:41

标签: c# asp.net nullreferenceexception

我正在使用ASP.net和C#创建网站注册表单。我在家里[不同的计算机]创建了一个小的sqlcommand来选择表中的用户名并将它们与给定的用户名进行匹配,但是我得到了一个错误。

错误

  

Error123:System.NullReferenceException:未将对象引用设置为对象的实例。 at index:Page_Load(Object sender,EventArgs e)在e:\ Year 2 \ Internet App Development \ Assignment 2 \ assignment 2 \ account.aspx.cs:line 18Error:System.NullReferenceException:对象引用未设置为an的实例宾语。 at index中的index.submitButton_Click(Object sender,EventArgs e)\ Internet App Development \ Assignment 2 \ assignment 2 \ account.aspx.cs:第41行

守则:

protected void Page_Load(object sender, EventArgs e)
{
    if (IsPostBack)
    {
        try
        {
            SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["RegistrationConnectionString"].ConnectionString);
            connection.Open();
            string checkuser = "select count(*) from userTable where Username='" + userValBox.Text + "'";
            SqlCommand com = new SqlCommand(checkuser, connection);
            int temp = Convert.ToInt32(com.ExecuteScalar().ToString());
            if (temp == 1)
            {
                Response.Write("Username already exists");
            }

            connection.Close();
        }
        catch(Exception ex)
        {
            Response.Write("Error123: " + ex.ToString());
        }
    }
}

很抱歉这是一个重复的问题,我搜索了其他人并且没有发现任何问题。提前谢谢!

2 个答案:

答案 0 :(得分:0)

连接字符串的名称与web.config中的连接字符串不匹配。

改变这个:

ConfigurationManager.ConnectionStrings["RegistrationConnectionString"]

要:

ConfigurationManager.ConnectionStrings["ConnectionString"]

另外,你应该改变它,因为它可能会变坏:

com.ExecuteScalar().ToString()

你应该试试这个:

obj result = com.ExecuteScalar();

if (result != null)
{
    int count = Convert.ToInt32(result);
}

或者简单地说:

int count = Convert.ToInt32(com.ExecuteScalar());

答案 1 :(得分:0)

“System.NullReferenceException”的原因是com.executescalar中可能存在null值