Link to home
Start Free TrialLog in
Avatar of igor92128
igor92128

asked on

Running SQL queries containing querystrings in codebehind.

I have an ASP.NET page with a QueryString in the URL of AlbumID (Example: MyPage.aspx?AlbumID=1). I need to write some codebehind in C# on this page that simply gets an average by running a query for the AlbumID in the querystring, and put that result in a Label1 in the ASP.NET front page.

Here is my code:

 protected void Page_Load(object sender, EventArgs e)
    {

        SqlConnection myConnection = null;

        try
        {
            string connString = ConfigurationManager.ConnectionString["ConnectionString"].ConnectionString;

            myConnection = new SqlConnection();
            myConnection.ConnectionString = connString;
            myConnection.Open();

            SqlCommand getAverage = new SqlCommand();
            getAverage.CommandText = "SELECT AVG(Rating) FROM Ratings WHERE AlbumID = @AlbumID";
            getAverage.Connection = myConnection;

            SqlDataReader reader = getAverage.ExecuteReader();
            getAverage.Parameters.AddWithValue("@AlbumID", Label1.Text);

            while (reader.Read())
            {
                string average = (string)reader["avg"];
                Label1.Text += average;
            }
            getAverage.ExecuteNonQuery();

            reader.Close();
            myConnection.Close();
        }
        catch(Exception ex)
        {
// Just for testing.
            Label1.Text += ex.ToString();
        }
    }

When I run this, I get the exception "Must declare the scalar variable "@AlbumID". " and I don't know why it isn't reading what is in the querystring.

Any Ideas?

thanks,
Igor
ASKER CERTIFIED SOLUTION
Avatar of burakiewicz
burakiewicz
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial