Alex Rivera | Logout

ASP.NET web site can't see .cs file in App_Code folder

Asked 2010-10-27T22:03:02.500
15

So I have an ASP.NET web site (not web application) I'm making in VS2010 with C#. It runs fine on my machine, but when I upload it to the site it's hosted on, it won't compile, giving: "CS0246: The type or namespace name 'DataAccess' could not be found (are you missing a using directive or an assembly reference?)"

I've been using the copy web site feature in VS and had no problems until I wanted to put my own class in the App_Code folder and use it. I read in other answers about changing the .cs properties to "Compile" instead of "Content", but there's no such option for me in the properties of the file... only File Name, Full Path, and Custom Tool. Here's the code from the .cs file:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;

/// <summary>
/// Provides access to SQL Server database. 
/// </summary>
/// 
public class DataAccess
{
    //Variables & public properties ***********************************
    private string connectionString = "";
    private int recordCount = -1;

    /// <summary>
    /// Property: gets count of records retrieved or changed 
    /// </summary>
    public int Count
    {
        get
        {
            return recordCount;
        }
    }

    //Class constructor is executed when object is initialized ***********
    /// <summary>
    /// Connection string name in web.config file is required to initialize DataAccess
    /// </summary>
    /// <param name="ConnectionName">Name of web.config connection string</param>
    public DataAccess(string ConnectionName)
    {
        if (WebConfigurationManager.ConnectionStrings[ConnectionName] == null) {
            throw new Exception("Cannot find connection string named '" +
               ConnectionName + "' in web.config");
        }
        //Get connection string from web.config.
        connectionString = WebConfigurationManager.ConnectionStrings[ConnectionName]
Edit
Report

1 Answer

21

By default websites don't compile .cs files. You will need to do a few different things.

  1. Set each class file to "compile" in the properties for that class file. You can see this option by clicking the class file, viewing the properties in the properties explorer window, and changing the Build Action dropdown list to "Compile."

  2. If the above doesn't help, remove the class from the app_code and drop it in the root folder.

answered 2010-10-27T22:38:41.450

Your Answer