在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; } } }
|
请发表评论