上一篇文章講述了怎樣插入一條記錄,這里補充一下查詢、修改和刪除一條記錄。相對插入而言,查詢、修改和刪除容易得多,下面分別給出我的一種實現:
1.查詢:
//WebService端代碼:
[WebMethod]
public string GetEmployee(int empID)
{
Employee emp = new Employee();
if(emp.LoadByPrimaryKey(empID))
{
return emp.ToXml();
}
else
{
return null;
}
}
//客戶端代碼:
webService service = new webService();
Employee emp = service.GetEmployee(int empID);
2. 更新:
ADO.Net 2.0中新增了一項功能:DataRow提供SetModified和SetAdded方法來改變其狀態。上一篇文章中講到,執行emps.FromXml之后,DataRow的狀態為Added,這里我們可以將DataRow的狀態改為Modified,當調用Save時,即可實現更新功能。
//BusinessEntity.cs中添加一個函數:
virtual public void MarkAsModified()
{
if (_dataRow != null)
{
_dataRow.SetModified();
}
}
//WebService端的代碼:
[WebMethod]
public bool Update(string str)
{
Employee emp = new Employee();
emps.FromXml(str); //此時DataRow的狀態為Added
emps.AcceptChanges(); //此時DataRow的狀態為Unchanged
emps.SetModified(); //此時DataRowd的狀態為Modified
emps.Save(); //保存修改
}
//客戶端代碼:
webService service = new webService();
Employee emp = service.GetEmployee(int empID);//同上面的查詢
emp.Property = …………;
service.Update(emp.Toxml());
3. 刪除:
//客戶端只需將ID發過來就可以了
[WebMethod]
public bool Delete(int empID)
{
Employee emp = new Employee();
if(emp.LoadByPrimaryKey(empID))
{
emp.MarkAsDeleted();
emp.Save();
return true;
}
else
{
return false;
}
}
現在還沒有好的dOOdads模板來生成支持Web Service的業務實體,相信不久的將來會有的……

浙公網安備 33010602011771號