繁体   English   中英

尝试从web.config获取连接字符串时抛出NullReferenceException

[英]NullReferenceException thrown when attempting to get connectionstring from web.config

我试图在我的asp.net mvc 5应用程序中实现NLayering,并将该应用程序分为不同的层,其中之一是数据访问层(DAL)。 在我的DAL中,当我尝试在Insert方法中访问连接字符串时,出现了NullReferenceException。 我已经将System.Configuration参考添加到我的DAL项目中,并添加了一个包含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项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM