空错误读取连接字符串

Null Error Reading Connection String

我在尝试通过 ConnectionCtrings["MyDB"].connectionstring 连接到数据库时收到空引用异常。

这是在 using 语句中,与我在许多其他项目中使用的代码相同,但它一直告诉我空引用,我不知道为什么。

命名的连接字符串在同一项目的 web.config 中正确命名,因此我预计不会出现权限问题。

我错过了什么?

编辑: 我已经看到了建议的答案,这些是通过将字符串放在连接字符串所在的 Web.Config 中来解决的。

代码: Web.config

中的连接字符串
<connectionStrings>
    <add name="MyDB" connectionString="Data Source=192....; Initial Catalog=ProjectDb; Integrated Security=false; User Id=user; Password=password;" providerName="System.Data.SqlClient" />
</connectionStrings>

访问数据库的函数

public static Company RetrieveCompany(int id)
{
    var cmp = new Company();
    try
    {
        using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString))
        {
            con.Open();
            using (var cmd = new SqlCommand("RetreiveEmailProc", con))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@companyId", id);

                SqlDataReader sdr = cmd.ExecuteReader();
                while (sdr.Read())
                { // code omitted }
            }           

        }
    }
    catch(Exception ex)
    {

    }

    return cmp;
}

我认为这与您使用 ConfigurationManager 而不是 WebConfigurationManager 有关。您的代码可能驻留在具有不同 web.config 的另一个文件夹中,并且 ConfigurationManager 无法处理该继承问题。