WEB开发网
开发学院软件开发C语言 C#发现之旅:基于反射和动态编译的快速ORM框架(下... 阅读

C#发现之旅:基于反射和动态编译的快速ORM框架(下)

 2010-09-30 21:08:22 来源:WEB开发网   
核心提示: 该方法内判断若属性数据类型为时间型则设置输出的数据格式,若为字符串类型,C#发现之旅:基于反射和动态编译的快速ORM框架(下)(5),则判断数据是否为空,若为空则设置参数值为DBNull,,,生成更新数据的代码基础类型RecordORMHelper预留了FillUpdateCommand函数,快

该方法内判断若属性数据类型为时间型则设置输出的数据格式,若为字符串类型,则判断数据是否为空,若为空则设置参数值为DBNull。

生成更新数据的代码

基础类型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 ;
}

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:发现 之旅 基于

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接