我正在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
答案 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中的一个选项(也许是早期版本),可替换不同环境的部分配置。