要是三层结构的喔~高手们帮忙啊!

解决方案 »

  1.   

    我不明白...
    我输入的用户名和密码,传给BLL的字段,
    再把这倆字段作为参数构造一个COMM的查询字符串,
    我调用DAL的一个方法以打开数据库,并以COMM作为参数进行查询
    然后返回一个DS给BBL处理
    这样子有问题吗?
      

  2.   

    Model:using System;namespace Model
    {
    /// <summary>
    /// AdminInfo 的摘要说明。
    /// </summary>
    public class AdminInfo
    {
    private string _uid;
    private string _pwd;
    public AdminInfo()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }
    public string Uid
    {
    set
    {
    _uid=value;
    }
    get
    {
    return _uid;
    }
    }
    public string Pwd
    {
    set
    {
    _pwd=value;
    }
    get
    {
    return _pwd;
    }
    }
    }
    }
      

  3.   

    AccessDAL:using System;
    using System.Data;
    using System.Configuration;
    using IDAL;
    using System.Text;
    using System.Data.OleDb;
    using DBUtility;
    namespace AccessDAL
    {
    /// <summary>
    /// Admin 的摘要说明。
    /// </summary>
    public class Admin:IAdmin
    {
    private string connectionString = ConfigurationSettings.AppSettings["AccessConectionString"]+System.Web.HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["DataPath"]);
    public Admin()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }
    public bool CheckAdminLogin(Model.AdminInfo Admin)
    {
    string sqlstr="select Id from Admin where Uid=@uid and Pwd=@pwd";
    OleDbParameter[] p=
    {
    SqlHelper.MakeInParam("@uid",Admin.Uid),
    SqlHelper.MakeInParam("@pwd",Admin.Pwd)
    };
    OleDbDataReader dr=SqlHelper.ExecuteReader(connectionString,sqlstr,p);
    if(dr.HasRows)
    {
    return true;
    }
    else
    {
    return false;
    }
    }
    }
    }BLL:using System;
    using System.Data;
    using IDAL;
    using Model;
    namespace BLL
    {
    /// <summary>
    /// Admin 的摘要说明。
    /// </summary>
    public class Admin
    {
    public static readonly IAdmin DAL = DALFactory.DataAccess.CreateAdmin();
    public static Model.AdminInfo AdminInfo=new AdminInfo();
    public Admin()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }
    public static bool CheckAdminLogin(string uid,string pwd)
    {
    AdminInfo.Uid=uid;
    AdminInfo.Pwd=pwd;
    return DAL.CheckAdminLogin(AdminInfo);
    }
    }
    }DALFactoryusing System;
    using System.Configuration;
    using System.Reflection;
    namespace DALFactory
    {
    /// <summary>
    /// DataAccess 的摘要说明。
    /// </summary>
    public sealed class DataAccess
    {
    private static readonly string path=ConfigurationSettings.AppSettings["AccessDAL"];
    public DataAccess()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }
    public static IDAL.IAdmin CreateAdmin()
    {
    string classname=path+".Admin";
    return (IDAL.IAdmin)Assembly.Load(path).CreateInstance(classname);
    }
    }
    }
      

  4.   

     public class Admin:IAdmin    {
            private string connectionString = ConfigurationSettings.AppSettings["AccessConectionString"]+System.Web.HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["DataPath"]);
            public Admin()
            {
                //
                // TODO: 在此处添加构造函数逻辑
                //
            }
            public bool CheckAdminLogin(Model.AdminInfo Admin)
            {
                string sqlstr="select Id from Admin where Uid=@uid and Pwd=@pwd";
                OleDbParameter[] p=
                    {
                        SqlHelper.MakeInParam("@uid",Admin.Uid),
                        SqlHelper.MakeInParam("@pwd",Admin.Pwd)
                    };
    在这里面的IAdmin是什么啊?实体类吗?
      

  5.   

    IDALusing System;
    using System.Data;
    namespace IDAL
    {
    /// <summary>
    /// IAdmin 的摘要说明。
    /// </summary>
    public interface IAdmin
    {
    bool CheckAdminLogin(Model.AdminInfo Admin);
    }
    }