当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  在ASP.NET中实现Model-View-Controller模式(四)

 在ASP.NET中实现Model-View-Controller模式(四)

点击次数:27 次 发布日期:2008-11-26 13:53:36 作者:源代码网
源代码网推荐     
源代码网推荐  模型-视图-控制器分离的重构
源代码网推荐  
源代码网推荐  为了解决上面所遗留的问题,你必须将模型与控制器角色分离。
源代码网推荐  
源代码网推荐  视图的实现代码与前部分相同。
源代码网推荐  
源代码网推荐  模型
源代码网推荐  
源代码网推荐  下面的代码例子使模型角色仅仅依赖于数据库,而不包含任何与视图相依赖的代码。
源代码网推荐  
源代码网推荐  using System;
源代码网推荐  
源代码网推荐  using System.Collections;
源代码网推荐  
源代码网推荐  using System.Data;
源代码网推荐  
源代码网推荐  using System.Data.SqlClient;
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  public class DatabaseGateway
源代码网推荐  
源代码网推荐  {
源代码网推荐  
源代码网推荐   public static DataSet GetRecordings()
源代码网推荐  
源代码网推荐   {
源代码网推荐  
源代码网推荐   String selectCmd = "select * from Recording";
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   SqlConnection myConnection =
源代码网推荐  
源代码网推荐   new SqlConnection(
源代码网推荐  
源代码网推荐   "server=(local);database=recordings;Trusted_Connection=yes");
源代码网推荐  
源代码网推荐   SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd, myConnection);
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   DataSet ds = new DataSet();
源代码网推荐  
源代码网推荐   myCommand.Fill(ds, "Recording");
源代码网推荐  
源代码网推荐   return ds;
源代码网推荐  
源代码网推荐   }
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   public static DataSet GetTracks(string recordingId)
源代码网推荐  
源代码网推荐   {
源代码网推荐  
源代码网推荐   String selectCmd =
源代码网推荐  
源代码网推荐   String.Format(
源代码网推荐  
源代码网推荐   "select * from Track where recordingId = {0} order by id",
源代码网推荐  
源代码网推荐   recordingId);
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   SqlConnection myConnection =
源代码网推荐  
源代码网推荐   new SqlConnection(
源代码网推荐  
源代码网推荐   "server=(local);database=recordings;Trusted_Connection=yes");
源代码网推荐  
源代码网推荐   SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd, myConnection);
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   DataSet ds = new DataSet();
源代码网推荐  
源代码网推荐   myCommand.Fill(ds, "Track");
源代码网推荐  
源代码网推荐   return ds;
源代码网推荐  
源代码网推荐   }
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  现在的代码只依赖于数据库,这个类是一个优秀的数据库的通道,它持有访问表或视图的所用的SQL语句,其它的代码调用一些方法来完成与数据库的交互。
源代码网推荐  
源代码网推荐  控制器
源代码网推荐  
源代码网推荐  这种重构方式利用代码隐藏机制,在负责数据访问的模型部分相对独立的情况下,由控制器负责事件与方法的控制工作。模型的任务很明确的,它仅返回一个DataSet对象。这种实现方式就像视图代码一样,不依赖于数据是如何从数据库中返回的。
源代码网推荐  
源代码网推荐  using System;
源代码网推荐  
源代码网推荐  using System.Data;
源代码网推荐  
源代码网推荐  using System.Collections;
源代码网推荐  
源代码网推荐  using System.Web.UI.WebControls;
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  public class Solution : System.Web.UI.Page
源代码网推荐  
源代码网推荐  {
源代码网推荐  
源代码网推荐   protected System.Web.UI.WebControls.Button submit;
源代码网推荐  
源代码网推荐   protected System.Web.UI.WebControls.DataGrid MyDataGrid;
源代码网推荐  
源代码网推荐   protected System.Web.UI.WebControls.DropDownList recordingSelect;
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   private void Page_Load(object sender, System.EventArgs e)
源代码网推荐  
源代码网推荐   {
源代码网推荐  
源代码网推荐   if(!IsPostBack)
源代码网推荐  
源代码网推荐   {
源代码网推荐  
源代码网推荐   DataSet ds = DatabaseGateway.GetRecordings();
源代码网推荐  
源代码网推荐   recordingSelect.DataSource = ds;
源代码网推荐  
源代码网推荐   recordingSelect.DataTextField = "title";
源代码网推荐  
源代码网推荐   recordingSelect.DataValueField = "id";
源代码网推荐  
源代码网推荐   recordingSelect.DataBind();
源代码网推荐  
源代码网推荐   }
源代码网推荐  
源代码网推荐   }
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   void SubmitBtn_Click(Object sender, EventArgs e)
源代码网推荐  
源代码网推荐   {
源代码网推荐  
源代码网推荐   DataSet ds =
源代码网推荐  
源代码网推荐   DatabaseGateway.GetTracks(
源代码网推荐  
源代码网推荐   (string)recordingSelect.SelectedItem.Value);
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   MyDataGrid.DataSource = ds;
源代码网推荐  
源代码网推荐   MyDataGrid.DataBind();
源代码网推荐  
源代码网推荐   }
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   #region Web Form Designer generated code
源代码网推荐  
源代码网推荐   override protected void OnInit(EventArgs e)
源代码网推荐  
源代码网推荐   {
源代码网推荐  
源代码网推荐   //
源代码网推荐  
源代码网推荐   // CODEGEN: This call is required by the ASP.NET Web Form Designer.
源代码网推荐  
源代码网推荐   //
源代码网推荐  
源代码网推荐   InitializeComponent();
源代码网推荐  
源代码网推荐   base.OnInit(e);
源代码网推荐  
源代码网推荐   }
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   /// <summary>
源代码网推荐  
源代码网推荐   /// Required method for Designer support - do not modify
源代码网推荐  
源代码网推荐   /// the contents of this method with the code editor.
源代码网推荐  
源代码网推荐   /// </summary>
源代码网推荐  
源代码网推荐   private void InitializeComponent()
源代码网推荐  
源代码网推荐   {
源代码网推荐  
源代码网推荐   this.submit.Click += new System.EventHandler(this.SubmitBtn_Click);
源代码网推荐  
源代码网推荐   this.Load += new System.EventHandler(this.Page_Load);
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐   }
源代码网推荐  
源代码网推荐   #endregion
源代码网推荐  
源代码网推荐  }
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华