小弟学生,在用.net学做一个简单三层结构的系统,还没有入门,一开始登陆都搞不定,希望各位高手指教。具体代码如下,
Login页的代码using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;using Evaluation.BusinessLogicLayer;
namespace Evaluation.Web
{
    public partial class Login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {        }
        protected void btnLogin_Click(object sender, EventArgs e)
        {
            string LoginAccount = txtUserName.Text; //用户登录名
            string password = txtPwd.Text; //密码            Admin admin = new Admin();
            admin.LoadData(LoginAccount);
            Session.Add("Aid", admin.Aid);            if (admin.Exist) //如果用户存在
            {
                if (admin.Apwd == password) //如果密码正确,转入管理员页面
                {
                   Response.Redirect("Admin.aspx");
                }
                else //如果密码错误,给出提示,光标停留在密码框中
                {
                    Response.Write("<Script Language=JavaScript>alert(\"密码错误,请重新输入密码!\")</Script>");
                }
            }
            else //如果用户不存在
            {
                Response.Write("<Script Language=JavaScript>alert(\"对不起,用户不存在!\")</Script>");
            }
        }        protected void Button1_Click(object sender, EventArgs e)
        {
            Response.Redirect("Login.aspx");
        }
    }
}
管理员admin的类定义如下:using System;
using System.Collections;
using System.Data;using Evaluation.DataAccessLayer;
using Evaluation.DataAccessHelper;namespace Evaluation.BusinessLogicLayer
{
    /// <summary>
    /// admin 的摘要说明
    /// </summary>
    public class Admin
    {
        #region 私有成员
        private int _Aid;
        private string _Aaccount;
        private string _Apwd;
        private string _Aname;
        private bool _Exist;
        #endregion        #region 属性
        public int Aid
        {
            set
            { 
                this._Aid = value; 
            }
            get
            {
                return this._Aid;
            }
        }
        public string Aaccount
        {
            set
            {
                this._Aaccount = value;
            }
            get
            {
                return this._Aaccount;
            }
        }
        public string Apwd
        {
            set
            {
                this._Apwd = value;
            }
            get
            {
                return this._Apwd;
            }
        }
        public string Aname
        {
            set
            {
                this._Aname = value;
            }
            get
            {
                return this._Aname;
            }
        }
            public bool Exist
{
get
{
return this._Exist;
}
}         #endregion        #region 方法
        /// <summary>
        /// 根据参数Aaccount,获取管理员详细信息
        /// </summary>
        public void LoadData(string Aaccount)
        { 
            Database db = new Database();
            string sql = "select from admin where Aaccount= " + SqlStringConstructor.GetQuotedString(Aaccount);
            DataRow dr = db.GetDataRow(sql); //利用Database类的GetDataRow方法查询用户数据            if (dr != null)
            {
                this._Aid = GetSafeData.ValidateDataRow_N(dr, "Aid");
                this._Aaccount = GetSafeData.ValidateDataRow_S(dr, "Aaccount");
                this._Apwd = GetSafeData.ValidateDataRow_S(dr, "Apwd");
                this._Aname = GetSafeData.ValidateDataRow_S(dr, "Aname");
                this._Exist = true;
            }
            else
            {
                this._Exist = false;
            }
        }
          #endregion
    }
}
我找了很多遍,发现不了哪里有错误,但是每次运行的时候,总是提示
错误 1 “Admin”并不包含“LoadData”的定义
错误 2 “Admin”并不包含“Aid”的定义
错误 3 “Admin”并不包含“Exist”的定义
错误 4 “Admin”并不包含“Apwd”的定义 看样子似乎是admin.cs有问题,在login中实例化的Admin没有效果,具体是哪里出错了呢?

解决方案 »

  1.   

    把admin.cs 放App_Code 文件夹内
      

  2.   

    我的确是把admin.cs放在app里面的,而且里面把业务类和数据库类分别建了文件夹,这个应该不会出问题吧?
      

  3.   

    放在App_Code 文件夹内  就算再建立子文件夹 也没问题的。你在检查一下命名空间吧
      

  4.   

    3楼说的对,命名空间都不一致啊,要不就是用相同的命名空间,要不就引用Admin的命名空间
      

  5.   

    晕,我的确是引用了命名空间的啊,Admin类是在逻辑层BusinessLogicLayer,Login是页面层web,也引用了,自我感觉确实没问题,但是事实上就有莫名其妙的毛病,小弟初学者啊,真被这妖孽给打击了
      

  6.   

    终于被我找到错误的地方了
     if (admin.Apwd == password) //如果密码正确,转入管理员页面 
                    { 
                       Response.Redirect("Admin.aspx"); 
                    } 
                    else //如果密码错误,给出提示,光标停留在密码框中 
                    { 
                        Response.Write(" <Script Language=JavaScript>alert(\"密码错误,请重新输入密码!\") </Script>"); 
                    } 我之前在业务层写了Admin的类,后来临时搞了个管理员的界面,界面是Admin.aspx,事实上,Admin.aspx对应的代码文件也叫Admin.cs,这样,两个类就重名了,怪不得老是找不到Admin的方法和属性,其实是找到Admin.aspx对应的Admin.cs里面去了。
    只是,这破系统怎么都不提示一下,害我怨念了一下午。。
    依旧要谢谢诸位