Si8
Si8

Reputation: 9225

Why I am receiving an Object reference not set error

My C# code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Xml.Linq;
using System.Configuration;

public partial class zzsearch : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        PopulatePhysician();

    }

    public void PopulatePhysician()
    {
        string myQuery = "SELECT * FROM tblPhysician";
        string conn = ConfigurationManager.ConnectionStrings["ConnStringTEST"].ConnectionString;
        SqlConnection cn = new SqlConnection(conn);
        SqlCommand cmd = new SqlCommand(myQuery, cn);

        SqlDataReader ddlValues = default(SqlDataReader);
        ddlValues = cmd.ExecuteReader();

        if (!IsPostBack)
        {
            name.DataSource = ddlValues;
            name.DataValueField = "content_id";
            name.DataTextField = "content_title";
            name.DataBind();
            //set the default value for the drop down
            ListItem Item = new ListItem();
            Item.Text = "Select a Last Name...";
            Item.Value = "0";
            //Item.Selected = True
            name.Items.Insert(0, Item);
        }
        cmd.Connection.Close();
        cmd.Connection.Dispose();
    }
}

My partial web.config file:

  <appSettings file="Application.config">
    <add key="ConnStringTEST" value="Data Source=ep-db;Initial Catalog=DSCONTENT;Integrated Security=FALSE;user=zytuid;pwd=testingitout;" />
  </appSettings>

ASP code:

    <asp:DropDownList ID="name" runat="server" ClientIDMode="Static">
    </asp:DropDownList>

Why do I receive the following error:

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:


Line 21:     {
Line 22:         string myQuery = "SELECT * FROM tblPhysician";
Line 23:         string conn = ConfigurationManager.ConnectionStrings["ConnStringTEST"].ConnectionString;
Line 24:         SqlConnection cn = new SqlConnection(conn);
Line 25:         SqlCommand cmd = new SqlCommand(myQuery, cn);


Source File: c:\Webserver\WWESTEXEC\zzsearch.aspx.cs    Line: 23 

Upvotes: 1

Views: 1040

Answers (4)

Brandon Johnson
Brandon Johnson

Reputation: 569

I think your issue is that you are looking in ConfigurationManager.ConnectionStrings and not ConfigurationManager.AppSettings. What i mean is that your connection string in your web config is in the AppSettings section and not in the connectionStrings section.

Try This:

string conn = ConfigurationManager.AppSettings["ConnStringTEST"];

Upvotes: 0

Shreyos Adikari
Shreyos Adikari

Reputation: 12744

You should check if the value is set before you can call ConnectionString .

Replace your code with the following:

 string conn = ConfigurationManager.ConnectionStrings["ConnStringTEST"].ConnectionString 

to

if(!string.IsNullOrEmpty(ConfigurationManager.ConnectionStrings["ConnStringTEST"])){
    string conn = ConfigurationManager.ConnectionStrings["ConnStringTEST"].ConnectionString ;

    }

Upvotes: 1

Markus
Markus

Reputation: 22436

The problem is that the connection string is added as an AppSettings entry, not as a connection string in your config file. That's why ConfigurationManager.ConnectionStrings["ConnStringTEST"] returns null and the call to the ConnectionString property results in a NullReferenceException.

Change this

<appSettings file="Application.config">
    <add key="ConnStringTEST" value="Data Source=ep-db;Initial Catalog=DSCONTENT;Integrated Security=FALSE;user=zytuid;pwd=testingitout;" />
</appSettings>

To this;

<connectionStrings>
    <add name="ConnStringTEST" connectionString="Data Source=ep-db;Initial Catalog=DSCONTENT;Integrated Security=FALSE;user=zytuid;pwd=testingitout;" />
</connectionStrings>

For detailed information on how to configure and retrieve connection strings in ADO.NET, see this link.

Upvotes: 3

Kyle W
Kyle W

Reputation: 3752

Because ConfigurationManager.ConnectionStrings["ConnStringTEST"] is returning null.

ConnectionStrings does not reference the appSettings section. It references the connectionStrings section.

Upvotes: 4

Related Questions