对象引用未设置为ASP.NET中对象的实例

时间:2014-01-07 07:47:25

标签: c# asp.net sql-server

我正在Asp.net和C#开发学校管理系统。 当我点击登录错误时,我创建了一个登录页面 对象引用未设置为对象的实例。

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

  

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

public string connectionString()
{
    string connString = ConfigurationManager.ConnectionStrings["SchoolConnectionString1"].ConnectionString;
    return connString;
}
  

源文件:C:\ Users \ ALI \ Desktop \ Final Project \ SchoolERP \ SchoolERP \ Connection \ MyConnection.cs Line:14

我的堆栈跟踪在

下给出

堆栈追踪:

  

[NullReferenceException:对象引用未设置为对象的实例。]        在C:\ Users \ ALI \ Desktop \ Final Project \ SchoolERP \ SchoolERP \ Connection \ MyConnection中的C:\ Users \ ALI \ Desktop \ Final SchoolERP.Connection.MyConnection.connectionString()中的SchoolERP.Connection.MyConnection.connectionString()。 CS:14              C:\ Users \ ALI \ Desktop \ Final Project \ SchoolERP \ SchoolERP \ Pages \ Membership \ Logout.aspx.cs中的SchoolERP.Pages.Membership.Logout.btnLogout_Click(Object sender,EventArgs e):26              System.Web.UI.WebControls.Button.OnClick(EventArgs e)+118            System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)+10              System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,String eventArgument)+13       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)+36       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+5563

4 个答案:

答案 0 :(得分:3)

问题:您的SchoolConnectionString1文件中可能缺少ConnectionString web.config

解决方案:您需要在ConnectionString文件中添加web.config,如下所示:

<connectionStrings>
  <add 
    name="SchoolConnectionString1" 
    connectionString="Data Source=serverName;Initial 
    Catalog=DatabaseName;Persist Security Info=True;User 
    ID=userName;Password=password"
    providerName="System.Data.SqlClient"
  />
</connectionStrings>

答案 1 :(得分:1)

请检查配置文件中是否确实有“SchoolConnectionString1”连接字符串。

在配置文件中(如果您正在处理Web项目,则为web.config),您应该看到如下内容:

<add name="SchoolConnectionString1" connectionString="Data Source=someServer;Initial Catalog=MyDB[...]" providerName="System.Data.SqlClient" />

如果不是这种情况,并且连接字符串显示正确,请检查您的web.config是否格式正确。

答案 2 :(得分:1)

请勿在web.config中使用appsettings。而是使用web.config中的connectionStrings部分。

     <connectionStrings>
     <add name="SchoolConnectionString1" 
     connectionString="Data Source=DatabaseServerName;Integrated Security=true;Initial   Catalog=MySampleDB" providerName="System.Data.SqlClient"/>
     </connectionStrings >

在代码后面使用add namespace

using System.Configuration;

答案 3 :(得分:1)

最可能的是,这是一个错误放置的Web配置或无效结构的情况(如果连接字符串在那里并且没有拼写错误

SchoolConnectionString1

如其他答案中所述。

在我们的项目中,有多个Web配置文件(一个用于调试,一个用于发布),因此这些内容经常发生。

因此,请检查您的案例中是否有两个(可能您的项目有不同版本的Web.Degug.Config和Web.Release.Config)。这是VS 2012中的一个选项(也许是早期版本),可替换不同环境的部分配置。