对象引用未设置为对象#5的实例

时间:2010-03-22 11:18:38

标签: c# nullreferenceexception

sUsername.Trim();
sPassword.Trim();
string ConnectionString = WebConfigurationManager.ConnectionStrings["dbnameConnectionString"].ConnectionString;
SqlConnection myConnection = new SqlConnection(ConnectionString);
  

对象引用未设置为对象的实例。   描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。

     

异常详细信息:System.NullReferenceException:未将对象引用设置为对象的实例。

有什么想法吗?我不明白这个错误。

5 个答案:

答案 0 :(得分:9)

嗯,你没有显示它出现在哪一行。它表明其中一个发生了:

  • sUsername为空
  • sPassword为空
  • WebConfigurationManager.ConnectionStrings["dbnameConnectionString"]返回null

顺便说一句,将Trim()作为一个单独的声明就像这样毫无意义。字符串是不可变的 - Trim() 返回修剪后的版本。你想要这样的东西:

sUsername = sUsername.Trim();
sPassword = sPassword.Trim();

...但只有在检查它们是否为空之后才会显示。

答案 1 :(得分:4)

嗯,我明白了,但你错过了行参考。错误发生在哪里?

Line 30:         sUsername.Trim();
Line 31:         sPassword.Trim();
Line 32:         string ConnectionString = WebConfigurationManager.ConnectionStrings["dbnameConnectionString"].ConnectionString;
Line 33:         SqlConnection myConnection = new SqlConnection(ConnectionString);
Line 34:         try

如果我认为sPassword存在 - 和sUsername ...... ...然后web.config中是否存在ConnectionString“dbNameConnectionString”?如果不是 - 那就是null,并且“.ConnectionString”自然会抛出该错误。

答案 2 :(得分:1)

30号线和31号线没有做任何事情:

sUsername = sUsername.Trim();
sPassword= sPassword.Trim();

发布错误发生的地方

答案 3 :(得分:0)

这只是意味着您正在尝试访问空引用的成员;即这里的一个变量是null。如果不知道行号,就很难说出哪一行,但我猜是sUsernamesPassword

答案 4 :(得分:0)

这是因为任何一个变量都是NULL。您可以在调试(运行时)期间检查sUserNamesPassword变量的值。