引言
本文我將介紹在三層Web體系開發中的兩種數據綁定模式
在三層Web體系結構裡
以具體的Customer為例
有多種方式執行這個流程
為了具體說明這三種方式的使用方法
通常
public class Customer
{
//list all properties
//CRUD methods
public void Load()
{
//Binding #
//Copy database record values into properties
}
public void Save()
{
//Binding #
//Copy properties values into database record
}
public void Delete() ;
//Other methods specific to customer
public string GetCustomerFullName()
}
編輯顧客頁面的代碼類似如下
//頁面的一些指令
//與Form窗體有關的一些顧客屬性
//提交和取消按鈕
編輯用戶信息的後台代碼類似如下
public partial class EditCustomer
{
protected void Page_Load(object sender
{
if (!IsPostBack){
//Check if adding new customer or updating
if (_isUpdateMode)
LoadData();
}
}
protected void btnSubmit_Click(object sender
{
if (!Page
return;
SaveData();
//Go Back
}
private void LoadData()
{
Customer customer=new Customer();
customerID=_customerID;
customer
//Binding #
//Copy customer properties into control values
}
private void SaveData()
{
Customer customer=new Customer();
If (_isUpdateMode)
{
customer
customer
}
//Binding #
//Copy control values into customer properties
customer
}
}
編輯顧客信息的方法之一是顯式的數據綁定方式
public void Load()
{
…
//Load customer record using data reader
_firstName=(string)dataReader[
_lastName=(string)dataReader[
…
}
在這種情況下
正如您所看到的上面方法的缺點--重復工作大且維護困難
對於這個方法
Creating DAL using typed DataSets
Modifying Data using FormView web control
對於 Database和Business對象之間的綁定
<asp:TextBox ID=
您可能已經注意到了在微軟提供的例子裡使用這種方式對簡單應用程序來說
這種方式可以簡單數據的維護
XLib在同時能夠提供前面介紹的兩種綁定方式外
在執行數據庫到業務邏輯對象方面
public class Customer
{
…
public void Load()
{
dataReader=new XDataReader();
//Load data using auto
//XDataReader works just like data reader
//converts Database values types into INulllable C# types
//Binding #
XBusinessObjectBinder
}
public void Save()
{
XDataWriter dataWriter=new XDataWriter();
//XDataWriter automatically generates INSERT/UPDATE/DELETE sql s
//statements
//Binding #
XBusinessObjectBinder
dataWriter
}
}
對於業務邏輯到Web控件的綁定
public partial class EditCustomer
{
protected void Page_Load(object sender
{…}
protected void btnSubmit_Click(object sender
{…}
private void LoadData()
{
Customer customer=new Customer();
customerID=_customerID;
customer
//Binding #
XWebControlsBinder
}
private void SaveData()
{
Customer customer=new Customer();
if (_isUpdateMode)
{
customer
customer
}
//Binding #
//Copy control values into customer properties
XwebControlsBinder
customer
}
}
正如您所看到的
From:http://tw.wingwit.com/Article/program/net/201311/12360.html