Object Reference Is Required "ProductService"
<p>I'm getting the following Error when trying to use OOP (for the first time), to display a list of products on my aspx page. The ProductService.cs reads the query and parameters from my ProductService.cs file, but unforturnaly there seem to be an issue with this line of code:</p>

<pre><code>ProductService.SaveProduct(id, TxtName.Text, Int32.Parse(DDCategories.SelectedValue), TxtDescription.Text, Decimal.Parse(TxtPrice.Text), Decimal.Parse(TxtUnitDiscount.Text));
</code></pre>

<p><strong>Error:</strong></p>

<blockquote>
  <p>CS0120: An object reference is required for the non-static field,
  method, or property 'ProductService.SaveProduct(int?, string, int,
  string, decimal, decimal)'</p>
</blockquote>

<p>Aspx.cs:</p>

<pre><code>protected void BtnUpdateOrCreate_Click(object sender, EventArgs e)
    {
               // Text in fields has to exist, if they are requierd
        if (!string.IsNullOrWhiteSpace(TxtName.Text) /*&amp;&amp;
            !string.IsNullOrWhiteSpace(TxtDescription.Text)*/)
        {
            // TODO: Be sure to parse the decimals using TryParse before 
            int? id = isCreate ? null : (int?)ProductID;
            ProductService productService = new ProductService();
            ProductService.SaveProduct(id, TxtName.Text, Int32.Parse(DDCategories.SelectedValue), TxtDescription.Text, Decimal.Parse(TxtPrice.Text), Decimal.Parse(TxtUnitDiscount.Text));

            // Redirects to list
            Response.Redirect(Request.Url.AbsolutePath);
        }
</code></pre>

<p>ProductService.cs:</p>

<pre><code>public void SaveProduct(int? id, string name, int categoryID, string description, decimal unitPrice, decimal discountUnitPrice)
    {
        dataAccess.AddParameter("@Name", name);
        dataAccess.AddParameter("@Category_ID", categoryID);
        dataAccess.AddParameter("@Description", description.ToNewline(false));
        dataAccess.AddParameter("@UnitPrice", unitPrice);
        dataAccess.AddParameter("@DiscountUnitPrice", discountUnitPrice);

        if (!id.HasValue)
        {
            // Insert query
            dataAccess.Execute(@"INSERT INTO [Product] ([Name], [Category_ID], [UnitPrice], [DiscountUnitPrice], [Description])
                                                VALUES (@Name, @Category_ID, @UnitPrice, @DiscountUnitPrice, @Description)");
        }
        else
        {
            // Update query
            dataAccess.AddParameter("@id", id.Value);
            dataAccess.Execute(@"UPDATE [Product]
                                SET [Name] = @Name, [Category_ID] = @Category_ID, [UnitPrice] = @UnitPrice, [DiscountUnitPrice] = @DiscountUnitPrice, [Description] = @Description
                                WHERE id = @id");
        }
    }
</code></pre>

<p>I can't seem to figure out what the issue could be, any response is more than appreciated.</p>
