“clsDataLayer”在当前上下文中不存在

时间:2013-06-06 19:44:07

标签: c# asp.net

我一直试图解决这个问题几个小时,我知道我在这里有一些小错误,但我无法确定它。请帮我。 所以我创建了一个名为“clsDataLayer.cs”的类,它位于App_Code asp.net文件夹中。 然后我创建了一个名为“frmUserActivity”的表单,但是现在当我在其中发布代码并调用该类时,它表示“当前上下文中不存在clsDataLayer”“有人可以帮助我吗?

clsDataLayer的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
// Add your comments here
using System.Data.OleDb;
using System.Net;
using System.Data;

namespace ASP_PayRoll.App_Code
{
    public class clsDataLayer
    {
        // This function gets the user activity from the tblUserActivity
        public static dsUserActivity GetUserActivity(string Database)
        {
            // Add your comments here
            dsUserActivity DS;
            OleDbConnection sqlConn;
            OleDbDataAdapter sqlDA;

            // Add your comments here
            sqlConn = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;" +
                "Data Source=" + Database);

            // Add your comments here
            sqlDA = new OleDbDataAdapter("select * from tblUserActivity", sqlConn);

            // Add your comments here
            DS = new dsUserActivity();

            // Add your comments here
            sqlDA.Fill(DS.tblUserActivity);

            // Add your comments here
            return DS;
        }

        // This function saves the user activity
        public static void SaveUserActivity(string Database, string FormAccessed)
        {
            // Add your comments here
            OleDbConnection conn = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;" +
                "Data Source=" + Database);
            conn.Open();
            OleDbCommand command = conn.CreateCommand();
            string strSQL;

            strSQL = "Insert into tblUserActivity (UserIP, FormAccessed) values ('" +
                GetIP4Address() + "', '" + FormAccessed + "')";

            command.CommandType = CommandType.Text;
            command.CommandText = strSQL;
            command.ExecuteNonQuery();
            conn.Close();
        }

        // This function gets the IP Address
        public static string GetIP4Address()
        {
            string IP4Address = string.Empty;

            foreach (IPAddress IPA in
                        Dns.GetHostAddresses(HttpContext.Current.Request.UserHostAddress))
            {
                if (IPA.AddressFamily.ToString() == "InterNetwork")
                {
                    IP4Address = IPA.ToString();
                    break;
                }
            }

            if (IP4Address != string.Empty)
            {
                return IP4Address;
            }

            foreach (IPAddress IPA in Dns.GetHostAddresses(Dns.GetHostName()))
            {
                if (IPA.AddressFamily.ToString() == "InterNetwork")
                {
                    IP4Address = IPA.ToString();
                    break;
                }
            }

            return IP4Address;
        }
    }
}

frmUserActivity.aspx.cs的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ASP_PayRoll
{
    public partial class frmUserActivity : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                //Declare the DataSet
                dsUserActivity myDataSet = new dsUserActivity();

                //Fill the dataset with what is returned from the function
                myDataSet = clsDataLayer.GetUserActivity(Server.MapPath("PayrollSystem_DB.mdb"));

                //Sets the DataGrip to the DataSource based on the table
                grdUserActivity.DataSource = myDataSet.Tables["tblUserActivity"];

                //Binds the DataGrid
                grdUserActivity.DataBind();
            }
        }
    }
}

提前致谢。 Ak

2 个答案:

答案 0 :(得分:3)

使用ASP_PayRoll.App_Code.clsDataLayer。数据层类中的命名空间为ASP_PayRoll.App_Code,页面中的命名空间为ASP_PayRoll

答案 1 :(得分:1)

using ASP_PayRoll.App_Code;添加到您的aspx文件中。

由于您在一个aspx页面之外的命名空间中声明了,因此您必须使用using语句或整个路径(ASP_PayRoll.App_Code.clsDataLayer)才能访问该类。