尝试从 web.config 获取连接字符串时抛出 NullReferenceException
NullReferenceException thrown when attempting to get connectionstring from web.config
我正在尝试在我的 asp.net mvc 5 应用程序中实现 NLayering,并将该应用程序分成不同的层,其中一层是数据访问层 (DAL)。在我的 DAL 中,当我尝试访问我的 Insert 方法中的连接字符串时,我得到一个 NullReferenceException。我添加了对我的 DAL 项目的 System.Configuration 引用和包含 ff 代码的 web.config 文件。
web.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="JcSpaceConnectionString" connectionString="Data Source=localhost;Initial Catalog=JcSpaceDatabase;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
JcSpaceDAL.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
using JcSpaceEntities;
namespace JcSpaceDAL
{
public class JcSpaceDAL
{
public static void Insert(JcSpaceAccount accountInfo)
{
string connectionString = ConfigurationManager.ConnectionStrings["JcSpaceConnectionString"].ConnectionString;//This line causes the nullreferenceexception
SqlConnection conn;
SqlCommand cmd;
using (conn = new SqlConnection(connectionString))
using (cmd = new SqlCommand("spInsert")) {
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Name", accountInfo.FirstName.ToString()+""+ accountInfo.LastName.ToString());
cmd.Parameters.AddWithValue("@Email", accountInfo.Email);
cmd.Parameters.AddWithValue("@DateOfBirth", acco untInfo.DateOfBirth);
cmd.ExecuteNonQuery();
}
}
}
}
为什么会这样?
我猜您将 JcSpaceConnectionString 添加到了错误的 web.config 文件中。您是否将 web.config 文件添加到您的 DAL 项目中?如果是这样,您需要将其移至 MVC 项目。
我正在尝试在我的 asp.net mvc 5 应用程序中实现 NLayering,并将该应用程序分成不同的层,其中一层是数据访问层 (DAL)。在我的 DAL 中,当我尝试访问我的 Insert 方法中的连接字符串时,我得到一个 NullReferenceException。我添加了对我的 DAL 项目的 System.Configuration 引用和包含 ff 代码的 web.config 文件。
web.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="JcSpaceConnectionString" connectionString="Data Source=localhost;Initial Catalog=JcSpaceDatabase;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
JcSpaceDAL.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
using JcSpaceEntities;
namespace JcSpaceDAL
{
public class JcSpaceDAL
{
public static void Insert(JcSpaceAccount accountInfo)
{
string connectionString = ConfigurationManager.ConnectionStrings["JcSpaceConnectionString"].ConnectionString;//This line causes the nullreferenceexception
SqlConnection conn;
SqlCommand cmd;
using (conn = new SqlConnection(connectionString))
using (cmd = new SqlCommand("spInsert")) {
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Name", accountInfo.FirstName.ToString()+""+ accountInfo.LastName.ToString());
cmd.Parameters.AddWithValue("@Email", accountInfo.Email);
cmd.Parameters.AddWithValue("@DateOfBirth", acco untInfo.DateOfBirth);
cmd.ExecuteNonQuery();
}
}
}
}
为什么会这样?
我猜您将 JcSpaceConnectionString 添加到了错误的 web.config 文件中。您是否将 web.config 文件添加到您的 DAL 项目中?如果是这样,您需要将其移至 MVC 项目。