程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#發現之旅第十二講 基於反射和動態編譯的快速ORM框架(下)(5)

C#發現之旅第十二講 基於反射和動態編譯的快速ORM框架(下)(5)

編輯:關於C語言

生成更新數據的代碼

基礎類型 RecordORMHelper預留了FillUpdateCommand函數,快速ORM框架更新數據庫時首先創建一個數 據庫命令對象,然後調用FillUpdateCommand函數設置SQL語句,添加SQL參數,然後執行該命 令對象接口更新數據庫記錄。對於DB_Employees,其FillUpdateCommand函數的代碼為

public override int FillUpdateCommand( System.Data.IDbCommand  cmd , object objRecord )
{
    if( cmd == null ) throw  new ArgumentNullException("cmd");
    if( objRecord == null )  throw new ArgumentNullException("objRecord");
    MyORM.DB_Employees  myRecord = objRecord as MyORM.DB_Employees ;
    if( myRecord ==  null ) throw new ArgumentException("must type  'MyORM.DB_Employees' ");

    cmd.CommandText = @"Update  Employees Set EmployeeID = ?  , LastName = ?  , FirstName = ?  ,  Title = ?  , TitleOfCourtesy = ?  , Address = ?  , BirthDate =  ?  , City = ?  , Country = ?  , EducationalLevel = ?  , EMail  = ?  , Extension = ?  , Goal = ?  , HireDate = ?  , HomePage  = ?  , HomePhone = ?  , Notes = ?  , PostalCode = ?  ,  Region = ?  , ReportsTo = ?  , Sex = ?  Where EmployeeID = ? "  ;
    cmd.Parameters.Clear();
     System.Data.IDbDataParameter parameter = null ;

    parameter  = cmd.CreateParameter();
    parameter.Value = myRecord.EmployeeID  ;
    cmd.Parameters.Add( parameter );

    parameter  = cmd.CreateParameter();
    parameter.Value =  myRecord.BirthDate.ToString("yyyy-MM-dd");
    cmd.Parameters.Add(  parameter );
    為其他屬性值添加SQL參數對象。。。。。。
     parameter = cmd.CreateParameter();
    parameter.Value =  myRecord.Sex ;
    cmd.Parameters.Add( parameter );
    //這 裡為查詢條件添加參數
    parameter = cmd.CreateParameter();
     parameter.Value = myRecord.EmployeeID ;
    cmd.Parameters.Add(  parameter );

    return 22 ;
}

這段代碼結構比 較簡單,首先是對參數進行判斷,然後設置SQL更新語句,然後將所有的屬性的值依次添加到 SQL參數列表中,最後還為查詢將EmployeeID值添加到SQL參數列表中。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved