zoukankan      html  css  js  c++  java
  • C/S中的MVC(1) 荣

    在C/S中,也可以实现一个类似的MVC模式。

    思路是这样的:用一个DataSet代替B/S中的HttpContext,用工厂模式写一个类来实现BN层与WEB层的对应。

    这样,是不是有点像MVC了。
    下面是代码:
    using System;
    using System.Data;

    using Business;

    namespace Business.Base
    {
     /// <summary>
     /// Description:窗体基类的公用函数类。
     ///              本类提供窗体基类所需要的一些方法,例如
     ///              写入,读取DataSet中的数据等
     /// </summary>
     public class FormCommonBN
     {
      /// <summary>
      /// 存储数据的DataSet表的名称。
      /// </summary>
      public const string DTNAME = "Meta";

      /// <summary>
      /// 当前窗体名称列。
      /// </summary>
      public const string FORMNAME = "FormName";

      /// <summary>
      /// Description:默认构造函数。
      /// </summary>
      private FormCommonBN()
      {
      }

      /// <summary>
      /// Description:从DataSet中取得DataTable。
      /// </summary>
      /// <param name="ds">存储数据的DataSet</param>
      /// <param name="key">列名称</param>
      /// <returns>DataTable</returns>
      public static DataTable GetDataTable(DataSet ds, string key)
      {
       if ((ds.Tables[DTNAME] == null)
        || ds.Tables[DTNAME].Rows.Count <= 0)
       {
        throw new Exception("没有您所需要的数据。");
       }
       return (DataTable)ds.Tables[FormCommonBN.DTNAME].Rows[0][key];
      }

      /// <summary>
      /// Description:从DataSet中取得值。
      /// </summary>
      /// <param name="ds">存储数据的DataSet</param>
      /// <param name="key">列名称</param>
      /// <returns>取得的值</returns>
      public static object GetData(DataSet ds, string key)
      {
       if ((ds.Tables[DTNAME] == null)
        || ds.Tables[DTNAME].Rows.Count <= 0)
       {
        throw new Exception("没有您所需要的数据。");
       }
       return ds.Tables[FormCommonBN.DTNAME].Rows[0][key];
      }

      /// <summary>
      /// Description:从DataSet中取得字符串。
      /// </summary>
      /// <param name="ds">存储数据的DataSet</param>
      /// <param name="key">列名称</param>
      /// <returns>取得的值</returns>
      public static string GetDataToString(DataSet ds, string key)
      {
       object obj = GetData(ds, key);
       if (obj == null)
       {
        return "";
       }
       else
       {
        return obj.ToString();
       }
      }

      /// <summary>
      /// Description:从DataSet中取得整数。
      /// </summary>
      /// <param name="ds">存储数据的DataSet</param>
      /// <param name="key">列名称</param>
      /// <returns>取得的值</returns>
      public static int GetDataToInt32(DataSet ds, string key)
      {
       object obj = GetData(ds, key);
       if (obj == null)
       {
        throw new Exception("程序中用到的某个参数没有赋值。");
       }

       return Convert.ToInt32(obj);
      }

      /// <summary>
      /// Dascription:设置DataSet中的DataTable。
      /// </summary>
      /// <param name="ds">存储数据的DataSet</param>
      /// <param name="dt">DataTable</param>
      /// <param name="key">列名称</param>
      public static void SetData(DataSet ds, DataTable dt, string key)
      {
       if ((ds.Tables[FormCommonBN.DTNAME] == null)
        || ds.Tables[DTNAME].Rows.Count <= 0)
       {
        throw new Exception("没有您所需要的数据。");
       }

       ds.Tables["Meta"].Rows[0][key] = dt;
      }

      /// <summary>
      /// Dascription:设置DataSet中的值。
      /// </summary>
      /// <param name="ds">存储数据的DataSet</param>
      /// <param name="Value">设置的值</param>
      /// <param name="key">列名称</param>
      public static void SetData(DataSet ds, object Value, string key)
      {
       if ((ds.Tables[FormCommonBN.DTNAME] == null)
        || ds.Tables[DTNAME].Rows.Count <= 0)
       {
        throw new Exception("没有您所需要的数据。");
       }

       ds.Tables["Meta"].Rows[0][key] = Value;
      }
     }
    }

  • 相关阅读:
    Poj2516 最小费用最大流
    spss研究高等院校人文社会研究课题受什么因素影响
    使用bs4实现将诗词名句网站中三国演义小说章节内容爬取
    python爬虫1 爬虫概要
    解析出所有城市名称
    xpath爬取58二手房的房源信息
    Po两段小代码,说几个小细节____关于九九乘法表&amp;amp;amp;国际象棋棋盘
    小爬虫demo——爬取“妹子”等网站链接____使用requests库
    爬取京东历史图书图片并下载到本地____requests库
    python基础:复习整理笔记(一)____关于 工具、程序执行原理、python风格规范
  • 原文地址:https://www.cnblogs.com/admin11/p/213590.html
Copyright © 2011-2022 走看看