列子太多了。简单一点的,PETSHOP不是吗?这方面WEBFORM还是WINFORM都是一个道理的了~-------------
楼主的信誉好紧

解决方案 »

  1.   

    你上面说的是window的n层解决方案吧
    一般都是界面层+业务外观层+业务层+数据访问层+数据层
    你最好看Microsoft的示例
    他给我们将的很清楚
    eg:Microsoft提供的企业级示例
    那里边的数据访问很好
    你要的是思想
    不是代码
      

  2.   

    youngby(诗人.cpp/.cc)(知耻而后进,师拜C++华山派(无语清风)) 我的信誉分是散分散丢的,帮我BS一下CSDN吧!
      

  3.   

    //用户 界面子处理 传入参数 和 接收 数据
    private void buyQuery_Click(object sender, System.EventArgs e)
    {
    Hashtable inHtbl = new Hashtable();
    Hashtable outHtbl;
    inHtbl["UserID"] = txtUser.Text; outHtbl = DataServer.SendDBMessage("MsgGetUserInfo_001",inHtbl); if( outHtbl["Out_MsgGetUserInfo_001"] is DataTable)
    {
    DataTable dt = outHtbl["Out_MsgGetUserInfo_001"] as DataTable;
    dataGrid1.DataSource = dt;
    }
    }/// <summary>
    /// db 访问类 DB.Dll[经过修改本类可以对在本地 或 远程使用]
    /// </summary>
    public class DataServer
    {
    /// <summary>
    /// 数据访问函数,根据 MsgID 调用 逻辑处理函数
    /// </summary>
    /// <param name="MsgID">业务消息id </param>
    /// <param name="inHshTbl">传入参数,这个函数不使用负责转发</param>
    /// <returns>将业务逻辑返回的数据包装到 Hashtable 中的 "Out_"+MsgID key中 </returns>
    public static Hashtable SendDBMessage(String MsgID,Hashtable inHshTbl)
    {
    //MsgID 对应处理 代码略
    //经过配置文件判断 MsgID MsgGetUserInfo_001 是对应  UserInfo.GetUserInfo 这个函数
    //需要有个 配置文件 或 有个表来对应 消息id 的处理入口函数
    object o = UserInfo.GetUserInfo(inHshTbl);
    Hashtable ReturnVar = new Hashtable();
    ReturnVar["Out_" + MsgID ] = o;
    return ReturnVar;
    }
    }
    /// <summary>
    /// 用户信息处理类
    /// </summary>
    public class UserInfo
    {
    /// <summary>
    /// inHshTbl 必须有 UserID key int 型
    /// </summary>
    /// <param name="inHshTbl"></param>
    /// <returns></returns>
    public static DataTable GetUserInfo(Hashtable inHshTbl)
    {
    DataTable ReturnVar=null;
    if(inHshTbl["UserID"] is string)
    {
    string ExecSql = "Select * form userTable where userid=:UserID";
    string  userid = inHshTbl["UserID"] as string;
    //调用db
    //da.Fill(ReturnVar);
    //ReturnVar.TableName = "USERTABLE"
    }
    return ReturnVar;
    }
    }
    -------------------------------
    看懂没?