using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using AIMSModel;
using AIMSObjectQuery;
using System.Collections.Generic;
using DrawGraph;
namespace AIMSDAL
{
    internal partial class DOperationRecord
	{
	    #region 插入实体操作部份
	    /// 
        /// 插入
        /// 
		/// Command对象
        /// 实体类对象
        /// 标识列值或影响的记录行数
		internal static int Insert(SqlCommand cmd, OperationRecord operationRecord)
		{
		    cmd.Parameters.Clear();
			cmd.CommandText = "insert into OperationRecord (PatientId,OperationApplyId,InRoomTime,OutRoomTime,OperationBeginTime,OperationEndTime,AnesthesiaBeginTime,AnesthesiaEndTime,ASALevel,SpecialCase,Fasting,BloodType,OperationDate,OpeSpecialCondition,BMI,BeforeDrugs,AnaesthesiaMethodName,AnaesthesiaTechnology,AnaesthesiaComplication,SpecialEvent,SuddenSituation,ConditionChage,RescueMeasures,RescueTime,RescuePerson,RescueTechnology,SpileInTime,SpileOutTime,SpileSituation,SpileWard,SpileBeforCondition,SpileAffterCondition,RefluxFlag,MuscleStrengthRecovery,CoughReflex,InOperaRoomState,BloodPressure,Tempeture,Pulse,Breath,IsolationIndicator,AnesMachine,ControlledAnalgesia,AnalgesiaModel,AnalgesiaRate,AnalgesiaDrug,AldreteScore,RouteMonitoring,Entourage,Remark1,Remark2,Remark3,Crystal,Colloid,InAmount,OutAmount,OperationTimeSpan,AnaesthesiaTimeSpan,RoomTimeSpan,AnesthesiaDoctorTimeMinute,anesthesiaDoctorSucceedTimeMinute,instrumentNurseTimeMinute,instrumentNurseSucceedTimeMinute,tourNurseTimeMinute,tourNurseSucceedTimeMinute,RecordPageCount,SignName,SignTime,RoomId,State,RecoverId,OperatorNo,OperatorName,OperateDate,Remarks) values (@PatientId,@OperationApplyId,@InRoomTime,@OutRoomTime,@OperationBeginTime,@OperationEndTime,@AnesthesiaBeginTime,@AnesthesiaEndTime,@ASALevel,@SpecialCase,@Fasting,@BloodType,@OperationDate,@OpeSpecialCondition,@BMI,@BeforeDrugs,@AnaesthesiaMethodName,@AnaesthesiaTechnology,@AnaesthesiaComplication,@SpecialEvent,@SuddenSituation,@ConditionChage,@RescueMeasures,@RescueTime,@RescuePerson,@RescueTechnology,@SpileInTime,@SpileOutTime,@SpileSituation,@SpileWard,@SpileBeforCondition,@SpileAffterCondition,@RefluxFlag,@MuscleStrengthRecovery,@CoughReflex,@InOperaRoomState,@BloodPressure,@Tempeture,@Pulse,@Breath,@IsolationIndicator,@AnesMachine,@ControlledAnalgesia,@AnalgesiaModel,@AnalgesiaRate,@AnalgesiaDrug,@AldreteScore,@RouteMonitoring,@Entourage,@Remark1,@Remark2,@Remark3,@Crystal,@Colloid,@InAmount,@OutAmount,@OperationTimeSpan,@AnaesthesiaTimeSpan,@RoomTimeSpan,@AnesthesiaDoctorTimeMinute,@anesthesiaDoctorSucceedTimeMinute,@instrumentNurseTimeMinute,@instrumentNurseSucceedTimeMinute,@tourNurseTimeMinute,@tourNurseSucceedTimeMinute,@RecordPageCount,@SignName,@SignTime,@RoomId,@State,@RecoverId,@OperatorNo,@OperatorName,@OperateDate,@Remarks);select @@identity";
			//从实体中取出值放入Command的参数列表
			cmd.Parameters.Add(new SqlParameter("@PatientId",operationRecord.PatientId.HasValue?(object)operationRecord.PatientId.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@OperationApplyId",operationRecord.OperationApplyId.HasValue?(object)operationRecord.OperationApplyId.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@InRoomTime",operationRecord.InRoomTime.HasValue?(object)operationRecord.InRoomTime.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@OutRoomTime",operationRecord.OutRoomTime.HasValue?(object)operationRecord.OutRoomTime.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@OperationBeginTime",operationRecord.OperationBeginTime.HasValue?(object)operationRecord.OperationBeginTime.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@OperationEndTime",operationRecord.OperationEndTime.HasValue?(object)operationRecord.OperationEndTime.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@AnesthesiaBeginTime",operationRecord.AnesthesiaBeginTime.HasValue?(object)operationRecord.AnesthesiaBeginTime.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@AnesthesiaEndTime",operationRecord.AnesthesiaEndTime.HasValue?(object)operationRecord.AnesthesiaEndTime.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@ASALevel",operationRecord.ASALevel.HasValue?(object)operationRecord.ASALevel.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@SpecialCase",operationRecord.SpecialCase==null?(object)DBNull.Value:(object)operationRecord.SpecialCase));
			cmd.Parameters.Add(new SqlParameter("@Fasting",operationRecord.Fasting.HasValue?(object)operationRecord.Fasting.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@BloodType",operationRecord.BloodType==null?(object)DBNull.Value:(object)operationRecord.BloodType));
			cmd.Parameters.Add(new SqlParameter("@OperationDate",operationRecord.OperationDate==null?(object)DBNull.Value:(object)operationRecord.OperationDate));
			cmd.Parameters.Add(new SqlParameter("@OpeSpecialCondition",operationRecord.OpeSpecialCondition==null?(object)DBNull.Value:(object)operationRecord.OpeSpecialCondition));
			cmd.Parameters.Add(new SqlParameter("@BMI",operationRecord.BMI==null?(object)DBNull.Value:(object)operationRecord.BMI));
			cmd.Parameters.Add(new SqlParameter("@BeforeDrugs",operationRecord.BeforeDrugs==null?(object)DBNull.Value:(object)operationRecord.BeforeDrugs));
			cmd.Parameters.Add(new SqlParameter("@AnaesthesiaMethodName",operationRecord.AnaesthesiaMethodName==null?(object)DBNull.Value:(object)operationRecord.AnaesthesiaMethodName));
			cmd.Parameters.Add(new SqlParameter("@AnaesthesiaTechnology",operationRecord.AnaesthesiaTechnology==null?(object)DBNull.Value:(object)operationRecord.AnaesthesiaTechnology));
			cmd.Parameters.Add(new SqlParameter("@AnaesthesiaComplication",operationRecord.AnaesthesiaComplication==null?(object)DBNull.Value:(object)operationRecord.AnaesthesiaComplication));
			cmd.Parameters.Add(new SqlParameter("@SpecialEvent",operationRecord.SpecialEvent==null?(object)DBNull.Value:(object)operationRecord.SpecialEvent));
			cmd.Parameters.Add(new SqlParameter("@SuddenSituation",operationRecord.SuddenSituation==null?(object)DBNull.Value:(object)operationRecord.SuddenSituation));
			cmd.Parameters.Add(new SqlParameter("@ConditionChage",operationRecord.ConditionChage==null?(object)DBNull.Value:(object)operationRecord.ConditionChage));
			cmd.Parameters.Add(new SqlParameter("@RescueMeasures",operationRecord.RescueMeasures==null?(object)DBNull.Value:(object)operationRecord.RescueMeasures));
			cmd.Parameters.Add(new SqlParameter("@RescueTime",operationRecord.RescueTime==null?(object)DBNull.Value:(object)operationRecord.RescueTime));
			cmd.Parameters.Add(new SqlParameter("@RescuePerson",operationRecord.RescuePerson==null?(object)DBNull.Value:(object)operationRecord.RescuePerson));
			cmd.Parameters.Add(new SqlParameter("@RescueTechnology",operationRecord.RescueTechnology==null?(object)DBNull.Value:(object)operationRecord.RescueTechnology));
			cmd.Parameters.Add(new SqlParameter("@SpileInTime",operationRecord.SpileInTime==null?(object)DBNull.Value:(object)operationRecord.SpileInTime));
			cmd.Parameters.Add(new SqlParameter("@SpileOutTime",operationRecord.SpileOutTime==null?(object)DBNull.Value:(object)operationRecord.SpileOutTime));
			cmd.Parameters.Add(new SqlParameter("@SpileSituation",operationRecord.SpileSituation==null?(object)DBNull.Value:(object)operationRecord.SpileSituation));
			cmd.Parameters.Add(new SqlParameter("@SpileWard",operationRecord.SpileWard==null?(object)DBNull.Value:(object)operationRecord.SpileWard));
			cmd.Parameters.Add(new SqlParameter("@SpileBeforCondition",operationRecord.SpileBeforCondition==null?(object)DBNull.Value:(object)operationRecord.SpileBeforCondition));
			cmd.Parameters.Add(new SqlParameter("@SpileAffterCondition",operationRecord.SpileAffterCondition==null?(object)DBNull.Value:(object)operationRecord.SpileAffterCondition));
			cmd.Parameters.Add(new SqlParameter("@RefluxFlag",operationRecord.RefluxFlag==null?(object)DBNull.Value:(object)operationRecord.RefluxFlag));
			cmd.Parameters.Add(new SqlParameter("@MuscleStrengthRecovery",operationRecord.MuscleStrengthRecovery==null?(object)DBNull.Value:(object)operationRecord.MuscleStrengthRecovery));
			cmd.Parameters.Add(new SqlParameter("@CoughReflex",operationRecord.CoughReflex==null?(object)DBNull.Value:(object)operationRecord.CoughReflex));
			cmd.Parameters.Add(new SqlParameter("@InOperaRoomState",operationRecord.InOperaRoomState==null?(object)DBNull.Value:(object)operationRecord.InOperaRoomState));
			cmd.Parameters.Add(new SqlParameter("@BloodPressure",operationRecord.BloodPressure==null?(object)DBNull.Value:(object)operationRecord.BloodPressure));
			cmd.Parameters.Add(new SqlParameter("@Tempeture",operationRecord.Tempeture==null?(object)DBNull.Value:(object)operationRecord.Tempeture));
			cmd.Parameters.Add(new SqlParameter("@Pulse",operationRecord.Pulse==null?(object)DBNull.Value:(object)operationRecord.Pulse));
			cmd.Parameters.Add(new SqlParameter("@Breath",operationRecord.Breath==null?(object)DBNull.Value:(object)operationRecord.Breath));
			cmd.Parameters.Add(new SqlParameter("@IsolationIndicator",operationRecord.IsolationIndicator==null?(object)DBNull.Value:(object)operationRecord.IsolationIndicator));
			cmd.Parameters.Add(new SqlParameter("@AnesMachine",operationRecord.AnesMachine==null?(object)DBNull.Value:(object)operationRecord.AnesMachine));
			cmd.Parameters.Add(new SqlParameter("@ControlledAnalgesia",operationRecord.ControlledAnalgesia==null?(object)DBNull.Value:(object)operationRecord.ControlledAnalgesia));
			cmd.Parameters.Add(new SqlParameter("@AnalgesiaModel",operationRecord.AnalgesiaModel==null?(object)DBNull.Value:(object)operationRecord.AnalgesiaModel));
			cmd.Parameters.Add(new SqlParameter("@AnalgesiaRate",operationRecord.AnalgesiaRate==null?(object)DBNull.Value:(object)operationRecord.AnalgesiaRate));
			cmd.Parameters.Add(new SqlParameter("@AnalgesiaDrug",operationRecord.AnalgesiaDrug==null?(object)DBNull.Value:(object)operationRecord.AnalgesiaDrug));
			cmd.Parameters.Add(new SqlParameter("@AldreteScore",operationRecord.AldreteScore==null?(object)DBNull.Value:(object)operationRecord.AldreteScore));
			cmd.Parameters.Add(new SqlParameter("@RouteMonitoring",operationRecord.RouteMonitoring==null?(object)DBNull.Value:(object)operationRecord.RouteMonitoring));
			cmd.Parameters.Add(new SqlParameter("@Entourage",operationRecord.Entourage==null?(object)DBNull.Value:(object)operationRecord.Entourage));
			cmd.Parameters.Add(new SqlParameter("@Remark1",operationRecord.Remark1==null?(object)DBNull.Value:(object)operationRecord.Remark1));
			cmd.Parameters.Add(new SqlParameter("@Remark2",operationRecord.Remark2==null?(object)DBNull.Value:(object)operationRecord.Remark2));
			cmd.Parameters.Add(new SqlParameter("@Remark3",operationRecord.Remark3==null?(object)DBNull.Value:(object)operationRecord.Remark3));
			cmd.Parameters.Add(new SqlParameter("@Crystal",operationRecord.Crystal==null?(object)DBNull.Value:(object)operationRecord.Crystal));
			cmd.Parameters.Add(new SqlParameter("@Colloid",operationRecord.Colloid==null?(object)DBNull.Value:(object)operationRecord.Colloid));
			cmd.Parameters.Add(new SqlParameter("@InAmount",operationRecord.InAmount==null?(object)DBNull.Value:(object)operationRecord.InAmount));
			cmd.Parameters.Add(new SqlParameter("@OutAmount",operationRecord.OutAmount==null?(object)DBNull.Value:(object)operationRecord.OutAmount));
			cmd.Parameters.Add(new SqlParameter("@OperationTimeSpan",operationRecord.OperationTimeSpan==null?(object)DBNull.Value:(object)operationRecord.OperationTimeSpan));
			cmd.Parameters.Add(new SqlParameter("@AnaesthesiaTimeSpan",operationRecord.AnaesthesiaTimeSpan==null?(object)DBNull.Value:(object)operationRecord.AnaesthesiaTimeSpan));
			cmd.Parameters.Add(new SqlParameter("@RoomTimeSpan",operationRecord.RoomTimeSpan==null?(object)DBNull.Value:(object)operationRecord.RoomTimeSpan));
			cmd.Parameters.Add(new SqlParameter("@AnesthesiaDoctorTimeMinute",operationRecord.AnesthesiaDoctorTimeMinute==null?(object)DBNull.Value:(object)operationRecord.AnesthesiaDoctorTimeMinute));
			cmd.Parameters.Add(new SqlParameter("@anesthesiaDoctorSucceedTimeMinute",operationRecord.AnesthesiaDoctorSucceedTimeMinute==null?(object)DBNull.Value:(object)operationRecord.AnesthesiaDoctorSucceedTimeMinute));
			cmd.Parameters.Add(new SqlParameter("@instrumentNurseTimeMinute",operationRecord.InstrumentNurseTimeMinute==null?(object)DBNull.Value:(object)operationRecord.InstrumentNurseTimeMinute));
			cmd.Parameters.Add(new SqlParameter("@instrumentNurseSucceedTimeMinute",operationRecord.InstrumentNurseSucceedTimeMinute==null?(object)DBNull.Value:(object)operationRecord.InstrumentNurseSucceedTimeMinute));
			cmd.Parameters.Add(new SqlParameter("@tourNurseTimeMinute",operationRecord.TourNurseTimeMinute==null?(object)DBNull.Value:(object)operationRecord.TourNurseTimeMinute));
			cmd.Parameters.Add(new SqlParameter("@tourNurseSucceedTimeMinute",operationRecord.TourNurseSucceedTimeMinute==null?(object)DBNull.Value:(object)operationRecord.TourNurseSucceedTimeMinute));
			cmd.Parameters.Add(new SqlParameter("@RecordPageCount",operationRecord.RecordPageCount==null?(object)DBNull.Value:(object)operationRecord.RecordPageCount));
			cmd.Parameters.Add(new SqlParameter("@SignName",operationRecord.SignName==null?(object)DBNull.Value:(object)operationRecord.SignName));
			cmd.Parameters.Add(new SqlParameter("@SignTime",operationRecord.SignTime==null?(object)DBNull.Value:(object)operationRecord.SignTime));
			cmd.Parameters.Add(new SqlParameter("@RoomId",operationRecord.RoomId.HasValue?(object)operationRecord.RoomId.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@State",operationRecord.State.HasValue?(object)operationRecord.State.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@RecoverId",operationRecord.RecoverId.HasValue?(object)operationRecord.RecoverId.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@OperatorNo",operationRecord.OperatorNo==null?(object)DBNull.Value:(object)operationRecord.OperatorNo));
			cmd.Parameters.Add(new SqlParameter("@OperatorName",operationRecord.OperatorName==null?(object)DBNull.Value:(object)operationRecord.OperatorName));
			cmd.Parameters.Add(new SqlParameter("@OperateDate",operationRecord.OperateDate.HasValue?(object)operationRecord.OperateDate.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@Remarks",operationRecord.Remarks==null?(object)DBNull.Value:(object)operationRecord.Remarks));
			return Convert.ToInt32(cmd.ExecuteScalar());
		}
	    /// 
        /// 不使用事务的插入方法
        /// 
        /// 实体类对象
        /// 标识列值或影响的记录行数
	    internal static int Insert(OperationRecord operationRecord)
		{
			using(SqlConnection conn=new SqlConnection(Connection.ConnectionString))
			{
				conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return Insert(cmd, operationRecord);
                }
			}
		}
		
		/// 
        /// 使用事务的插入方法
        /// 
        /// 实现共享Connection的对象
        /// 实体类对象
        /// 标识列值或影响的记录行数
        internal static int Insert(Connection connection,OperationRecord operationRecord)
        {
            return Insert(connection.Command, operationRecord);
        }
		#endregion
		
		#region 删除实体操作
		
		/// 
        /// 删除
        /// 
		/// Command对象
        /// 实体类对象
        /// 影响的记录行数
		internal static int ExcuteDeleteCommand(SqlCommand cmd, OperationRecord operationRecord)
        {
			cmd.Parameters.Clear();
            cmd.CommandText = "delete from OperationRecord where Id=@Id";
            //从实体中取出值放入Command的参数列表
		    cmd.Parameters.Add(new SqlParameter("@Id", operationRecord.Id));
            return cmd.ExecuteNonQuery();
        }
		/// 
        /// 不使用事务的删除方法
        /// 
        /// 实体类对象
        /// 影响的记录行数
        internal static int Delete(OperationRecord operationRecord)
        {
            using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return ExcuteDeleteCommand(cmd, operationRecord);
                }
            }
        }
		/// 
        /// 使用事务的删除方法
        /// 
        /// 实现共享Connection的对象
        /// 实体类对象
        /// 影响的记录行数
        internal static int Delete(Connection connection,OperationRecord operationRecord)
        {
            return  ExcuteDeleteCommand(connection.Command, operationRecord);
		}
		
		/// 
        /// 执行删除命令
        /// 
        /// Command对象
        /// 对象查询语句
        /// 参数列表
        /// 影响的记录行数
        internal static int ExcuteDeleteCommand(SqlCommand cmd, string oql, ParameterList parameters)
        {
            //解析过滤部份Sql语句
            string filterString = SyntaxAnalyzer.ParseSql(oql, new OperationRecordMap());
            if (filterString != string.Empty)
            {
                filterString = " where " + filterString;
            }
            cmd.Parameters.Clear();
            cmd.CommandText = "delete from OperationRecord " + filterString;
            //添加参数
            if (parameters != null)
            {
                foreach (string key in parameters.Keys)
                {
                    cmd.Parameters.Add(new SqlParameter(key, parameters[key]));
                }
            }
            return cmd.ExecuteNonQuery();
        }
		
		/// 
        /// 不使用事务的删除方法
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 影响的记录行数
        internal static int Delete(string oql, ParameterList parameters)
        {
            using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return ExcuteDeleteCommand(cmd, oql, parameters);
                }
            }
        }
		
		/// 
        /// 使用事务的删除方法
        /// 
        /// 实现共享Connection的对象
        /// 对象查询语句
        /// 参数列表
        /// 影响的记录行数
        internal static int Delete(Connection connection, string oql, ParameterList parameters)
        {
            return ExcuteDeleteCommand(connection.Command, oql, parameters);
        }
		
		#endregion
		
		#region 更新实体操作
		
		/// 
        /// 更新
        /// 
		/// Command对象
        /// 实体类对象
        /// 影响的记录行数
		internal static int ExcuteUpdateCommand(SqlCommand cmd, OperationRecord operationRecord)
		{
		    cmd.CommandText = "update OperationRecord set PatientId=@PatientId,OperationApplyId=@OperationApplyId,InRoomTime=@InRoomTime,OutRoomTime=@OutRoomTime,OperationBeginTime=@OperationBeginTime,OperationEndTime=@OperationEndTime,AnesthesiaBeginTime=@AnesthesiaBeginTime,AnesthesiaEndTime=@AnesthesiaEndTime,ASALevel=@ASALevel,SpecialCase=@SpecialCase,Fasting=@Fasting,BloodType=@BloodType,OperationDate=@OperationDate,OpeSpecialCondition=@OpeSpecialCondition,BMI=@BMI,BeforeDrugs=@BeforeDrugs,AnaesthesiaMethodName=@AnaesthesiaMethodName,AnaesthesiaTechnology=@AnaesthesiaTechnology,AnaesthesiaComplication=@AnaesthesiaComplication,SpecialEvent=@SpecialEvent,SuddenSituation=@SuddenSituation,ConditionChage=@ConditionChage,RescueMeasures=@RescueMeasures,RescueTime=@RescueTime,RescuePerson=@RescuePerson,RescueTechnology=@RescueTechnology,SpileInTime=@SpileInTime,SpileOutTime=@SpileOutTime,SpileSituation=@SpileSituation,SpileWard=@SpileWard,SpileBeforCondition=@SpileBeforCondition,SpileAffterCondition=@SpileAffterCondition,RefluxFlag=@RefluxFlag,MuscleStrengthRecovery=@MuscleStrengthRecovery,CoughReflex=@CoughReflex,InOperaRoomState=@InOperaRoomState,BloodPressure=@BloodPressure,Tempeture=@Tempeture,Pulse=@Pulse,Breath=@Breath,IsolationIndicator=@IsolationIndicator,AnesMachine=@AnesMachine,ControlledAnalgesia=@ControlledAnalgesia,AnalgesiaModel=@AnalgesiaModel,AnalgesiaRate=@AnalgesiaRate,AnalgesiaDrug=@AnalgesiaDrug,AldreteScore=@AldreteScore,RouteMonitoring=@RouteMonitoring,Entourage=@Entourage,Remark1=@Remark1,Remark2=@Remark2,Remark3=@Remark3,Crystal=@Crystal,Colloid=@Colloid,InAmount=@InAmount,OutAmount=@OutAmount,OperationTimeSpan=@OperationTimeSpan,AnaesthesiaTimeSpan=@AnaesthesiaTimeSpan,RoomTimeSpan=@RoomTimeSpan,AnesthesiaDoctorTimeMinute=@AnesthesiaDoctorTimeMinute,anesthesiaDoctorSucceedTimeMinute=@anesthesiaDoctorSucceedTimeMinute,instrumentNurseTimeMinute=@instrumentNurseTimeMinute,instrumentNurseSucceedTimeMinute=@instrumentNurseSucceedTimeMinute,tourNurseTimeMinute=@tourNurseTimeMinute,tourNurseSucceedTimeMinute=@tourNurseSucceedTimeMinute,RecordPageCount=@RecordPageCount,SignName=@SignName,SignTime=@SignTime,RoomId=@RoomId,State=@State,RecoverId=@RecoverId,OperatorNo=@OperatorNo,OperatorName=@OperatorName,OperateDate=@OperateDate,Remarks=@Remarks where Id=@Id";
			//从实体中取出值放入Command的参数列表
			cmd.Parameters.Add(new SqlParameter("@PatientId",operationRecord.PatientId.HasValue?(object)operationRecord.PatientId.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@OperationApplyId",operationRecord.OperationApplyId.HasValue?(object)operationRecord.OperationApplyId.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@InRoomTime",operationRecord.InRoomTime.HasValue?(object)operationRecord.InRoomTime.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@OutRoomTime",operationRecord.OutRoomTime.HasValue?(object)operationRecord.OutRoomTime.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@OperationBeginTime",operationRecord.OperationBeginTime.HasValue?(object)operationRecord.OperationBeginTime.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@OperationEndTime",operationRecord.OperationEndTime.HasValue?(object)operationRecord.OperationEndTime.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@AnesthesiaBeginTime",operationRecord.AnesthesiaBeginTime.HasValue?(object)operationRecord.AnesthesiaBeginTime.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@AnesthesiaEndTime",operationRecord.AnesthesiaEndTime.HasValue?(object)operationRecord.AnesthesiaEndTime.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@ASALevel",operationRecord.ASALevel.HasValue?(object)operationRecord.ASALevel.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@SpecialCase",operationRecord.SpecialCase==null?(object)DBNull.Value:(object)operationRecord.SpecialCase));
			cmd.Parameters.Add(new SqlParameter("@Fasting",operationRecord.Fasting.HasValue?(object)operationRecord.Fasting.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@BloodType",operationRecord.BloodType==null?(object)DBNull.Value:(object)operationRecord.BloodType));
			cmd.Parameters.Add(new SqlParameter("@OperationDate",operationRecord.OperationDate==null?(object)DBNull.Value:(object)operationRecord.OperationDate));
			cmd.Parameters.Add(new SqlParameter("@OpeSpecialCondition",operationRecord.OpeSpecialCondition==null?(object)DBNull.Value:(object)operationRecord.OpeSpecialCondition));
			cmd.Parameters.Add(new SqlParameter("@BMI",operationRecord.BMI==null?(object)DBNull.Value:(object)operationRecord.BMI));
			cmd.Parameters.Add(new SqlParameter("@BeforeDrugs",operationRecord.BeforeDrugs==null?(object)DBNull.Value:(object)operationRecord.BeforeDrugs));
			cmd.Parameters.Add(new SqlParameter("@AnaesthesiaMethodName",operationRecord.AnaesthesiaMethodName==null?(object)DBNull.Value:(object)operationRecord.AnaesthesiaMethodName));
			cmd.Parameters.Add(new SqlParameter("@AnaesthesiaTechnology",operationRecord.AnaesthesiaTechnology==null?(object)DBNull.Value:(object)operationRecord.AnaesthesiaTechnology));
			cmd.Parameters.Add(new SqlParameter("@AnaesthesiaComplication",operationRecord.AnaesthesiaComplication==null?(object)DBNull.Value:(object)operationRecord.AnaesthesiaComplication));
			cmd.Parameters.Add(new SqlParameter("@SpecialEvent",operationRecord.SpecialEvent==null?(object)DBNull.Value:(object)operationRecord.SpecialEvent));
			cmd.Parameters.Add(new SqlParameter("@SuddenSituation",operationRecord.SuddenSituation==null?(object)DBNull.Value:(object)operationRecord.SuddenSituation));
			cmd.Parameters.Add(new SqlParameter("@ConditionChage",operationRecord.ConditionChage==null?(object)DBNull.Value:(object)operationRecord.ConditionChage));
			cmd.Parameters.Add(new SqlParameter("@RescueMeasures",operationRecord.RescueMeasures==null?(object)DBNull.Value:(object)operationRecord.RescueMeasures));
			cmd.Parameters.Add(new SqlParameter("@RescueTime",operationRecord.RescueTime==null?(object)DBNull.Value:(object)operationRecord.RescueTime));
			cmd.Parameters.Add(new SqlParameter("@RescuePerson",operationRecord.RescuePerson==null?(object)DBNull.Value:(object)operationRecord.RescuePerson));
			cmd.Parameters.Add(new SqlParameter("@RescueTechnology",operationRecord.RescueTechnology==null?(object)DBNull.Value:(object)operationRecord.RescueTechnology));
			cmd.Parameters.Add(new SqlParameter("@SpileInTime",operationRecord.SpileInTime==null?(object)DBNull.Value:(object)operationRecord.SpileInTime));
			cmd.Parameters.Add(new SqlParameter("@SpileOutTime",operationRecord.SpileOutTime==null?(object)DBNull.Value:(object)operationRecord.SpileOutTime));
			cmd.Parameters.Add(new SqlParameter("@SpileSituation",operationRecord.SpileSituation==null?(object)DBNull.Value:(object)operationRecord.SpileSituation));
			cmd.Parameters.Add(new SqlParameter("@SpileWard",operationRecord.SpileWard==null?(object)DBNull.Value:(object)operationRecord.SpileWard));
			cmd.Parameters.Add(new SqlParameter("@SpileBeforCondition",operationRecord.SpileBeforCondition==null?(object)DBNull.Value:(object)operationRecord.SpileBeforCondition));
			cmd.Parameters.Add(new SqlParameter("@SpileAffterCondition",operationRecord.SpileAffterCondition==null?(object)DBNull.Value:(object)operationRecord.SpileAffterCondition));
			cmd.Parameters.Add(new SqlParameter("@RefluxFlag",operationRecord.RefluxFlag==null?(object)DBNull.Value:(object)operationRecord.RefluxFlag));
			cmd.Parameters.Add(new SqlParameter("@MuscleStrengthRecovery",operationRecord.MuscleStrengthRecovery==null?(object)DBNull.Value:(object)operationRecord.MuscleStrengthRecovery));
			cmd.Parameters.Add(new SqlParameter("@CoughReflex",operationRecord.CoughReflex==null?(object)DBNull.Value:(object)operationRecord.CoughReflex));
			cmd.Parameters.Add(new SqlParameter("@InOperaRoomState",operationRecord.InOperaRoomState==null?(object)DBNull.Value:(object)operationRecord.InOperaRoomState));
			cmd.Parameters.Add(new SqlParameter("@BloodPressure",operationRecord.BloodPressure==null?(object)DBNull.Value:(object)operationRecord.BloodPressure));
			cmd.Parameters.Add(new SqlParameter("@Tempeture",operationRecord.Tempeture==null?(object)DBNull.Value:(object)operationRecord.Tempeture));
			cmd.Parameters.Add(new SqlParameter("@Pulse",operationRecord.Pulse==null?(object)DBNull.Value:(object)operationRecord.Pulse));
			cmd.Parameters.Add(new SqlParameter("@Breath",operationRecord.Breath==null?(object)DBNull.Value:(object)operationRecord.Breath));
			cmd.Parameters.Add(new SqlParameter("@IsolationIndicator",operationRecord.IsolationIndicator==null?(object)DBNull.Value:(object)operationRecord.IsolationIndicator));
			cmd.Parameters.Add(new SqlParameter("@AnesMachine",operationRecord.AnesMachine==null?(object)DBNull.Value:(object)operationRecord.AnesMachine));
			cmd.Parameters.Add(new SqlParameter("@ControlledAnalgesia",operationRecord.ControlledAnalgesia==null?(object)DBNull.Value:(object)operationRecord.ControlledAnalgesia));
			cmd.Parameters.Add(new SqlParameter("@AnalgesiaModel",operationRecord.AnalgesiaModel==null?(object)DBNull.Value:(object)operationRecord.AnalgesiaModel));
			cmd.Parameters.Add(new SqlParameter("@AnalgesiaRate",operationRecord.AnalgesiaRate==null?(object)DBNull.Value:(object)operationRecord.AnalgesiaRate));
			cmd.Parameters.Add(new SqlParameter("@AnalgesiaDrug",operationRecord.AnalgesiaDrug==null?(object)DBNull.Value:(object)operationRecord.AnalgesiaDrug));
			cmd.Parameters.Add(new SqlParameter("@AldreteScore",operationRecord.AldreteScore==null?(object)DBNull.Value:(object)operationRecord.AldreteScore));
			cmd.Parameters.Add(new SqlParameter("@RouteMonitoring",operationRecord.RouteMonitoring==null?(object)DBNull.Value:(object)operationRecord.RouteMonitoring));
			cmd.Parameters.Add(new SqlParameter("@Entourage",operationRecord.Entourage==null?(object)DBNull.Value:(object)operationRecord.Entourage));
			cmd.Parameters.Add(new SqlParameter("@Remark1",operationRecord.Remark1==null?(object)DBNull.Value:(object)operationRecord.Remark1));
			cmd.Parameters.Add(new SqlParameter("@Remark2",operationRecord.Remark2==null?(object)DBNull.Value:(object)operationRecord.Remark2));
			cmd.Parameters.Add(new SqlParameter("@Remark3",operationRecord.Remark3==null?(object)DBNull.Value:(object)operationRecord.Remark3));
			cmd.Parameters.Add(new SqlParameter("@Crystal",operationRecord.Crystal==null?(object)DBNull.Value:(object)operationRecord.Crystal));
			cmd.Parameters.Add(new SqlParameter("@Colloid",operationRecord.Colloid==null?(object)DBNull.Value:(object)operationRecord.Colloid));
			cmd.Parameters.Add(new SqlParameter("@InAmount",operationRecord.InAmount==null?(object)DBNull.Value:(object)operationRecord.InAmount));
			cmd.Parameters.Add(new SqlParameter("@OutAmount",operationRecord.OutAmount==null?(object)DBNull.Value:(object)operationRecord.OutAmount));
			cmd.Parameters.Add(new SqlParameter("@OperationTimeSpan",operationRecord.OperationTimeSpan==null?(object)DBNull.Value:(object)operationRecord.OperationTimeSpan));
			cmd.Parameters.Add(new SqlParameter("@AnaesthesiaTimeSpan",operationRecord.AnaesthesiaTimeSpan==null?(object)DBNull.Value:(object)operationRecord.AnaesthesiaTimeSpan));
			cmd.Parameters.Add(new SqlParameter("@RoomTimeSpan",operationRecord.RoomTimeSpan==null?(object)DBNull.Value:(object)operationRecord.RoomTimeSpan));
			cmd.Parameters.Add(new SqlParameter("@AnesthesiaDoctorTimeMinute",operationRecord.AnesthesiaDoctorTimeMinute==null?(object)DBNull.Value:(object)operationRecord.AnesthesiaDoctorTimeMinute));
			cmd.Parameters.Add(new SqlParameter("@anesthesiaDoctorSucceedTimeMinute",operationRecord.AnesthesiaDoctorSucceedTimeMinute==null?(object)DBNull.Value:(object)operationRecord.AnesthesiaDoctorSucceedTimeMinute));
			cmd.Parameters.Add(new SqlParameter("@instrumentNurseTimeMinute",operationRecord.InstrumentNurseTimeMinute==null?(object)DBNull.Value:(object)operationRecord.InstrumentNurseTimeMinute));
			cmd.Parameters.Add(new SqlParameter("@instrumentNurseSucceedTimeMinute",operationRecord.InstrumentNurseSucceedTimeMinute==null?(object)DBNull.Value:(object)operationRecord.InstrumentNurseSucceedTimeMinute));
			cmd.Parameters.Add(new SqlParameter("@tourNurseTimeMinute",operationRecord.TourNurseTimeMinute==null?(object)DBNull.Value:(object)operationRecord.TourNurseTimeMinute));
			cmd.Parameters.Add(new SqlParameter("@tourNurseSucceedTimeMinute",operationRecord.TourNurseSucceedTimeMinute==null?(object)DBNull.Value:(object)operationRecord.TourNurseSucceedTimeMinute));
			cmd.Parameters.Add(new SqlParameter("@RecordPageCount",operationRecord.RecordPageCount==null?(object)DBNull.Value:(object)operationRecord.RecordPageCount));
			cmd.Parameters.Add(new SqlParameter("@SignName",operationRecord.SignName==null?(object)DBNull.Value:(object)operationRecord.SignName));
			cmd.Parameters.Add(new SqlParameter("@SignTime",operationRecord.SignTime==null?(object)DBNull.Value:(object)operationRecord.SignTime));
			cmd.Parameters.Add(new SqlParameter("@RoomId",operationRecord.RoomId.HasValue?(object)operationRecord.RoomId.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@State",operationRecord.State.HasValue?(object)operationRecord.State.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@RecoverId",operationRecord.RecoverId.HasValue?(object)operationRecord.RecoverId.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@OperatorNo",operationRecord.OperatorNo==null?(object)DBNull.Value:(object)operationRecord.OperatorNo));
			cmd.Parameters.Add(new SqlParameter("@OperatorName",operationRecord.OperatorName==null?(object)DBNull.Value:(object)operationRecord.OperatorName));
			cmd.Parameters.Add(new SqlParameter("@OperateDate",operationRecord.OperateDate.HasValue?(object)operationRecord.OperateDate.Value:(object)DBNull.Value));
			cmd.Parameters.Add(new SqlParameter("@Remarks",operationRecord.Remarks==null?(object)DBNull.Value:(object)operationRecord.Remarks));
			cmd.Parameters.Add(new SqlParameter("@Id", operationRecord.Id));
            return cmd.ExecuteNonQuery();
		}
		
		/// 
        /// 不使用事务的更新方法
        /// 
        /// 实体类对象
        /// 影响的记录行数
	    internal static int Update(OperationRecord operationRecord)
		{
			using(SqlConnection conn=new SqlConnection(Connection.ConnectionString))
			{
				conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return ExcuteUpdateCommand(cmd, operationRecord);
                }
			}
		}
		/// 
        /// 使用事务的更新方法
        /// 
        /// 实现共享Connection的对象
        /// 实体类对象
        /// 影响的记录行数
        internal static int Update(Connection connection,OperationRecord operationRecord)
        {
            return ExcuteUpdateCommand(connection.Command, operationRecord);
		}
		/// 
        /// 执行更新命令
        /// 
        /// Command对象
        /// 对象查询语句
        /// 参数列表
        /// 影响的记录行数
        internal static int ExcuteUpdateCommand(SqlCommand cmd, string oql, ParameterList parameters)
        {
            //解析过滤部份Sql语句
            string updateString = oql;// SyntaxAnalyzer.ParseSql(oql, new OperationRecordMap()); 
            cmd.CommandText = "update OperationRecord set " + updateString;
			cmd.Parameters.Clear();
            //添加参数
            if (parameters != null)
            {
                foreach (string key in parameters.Keys)
                {
                    cmd.Parameters.Add(new SqlParameter(key, parameters[key]));
                }
            }
            return cmd.ExecuteNonQuery();
        }
		
		/// 
        /// 不使用事务的更新方法
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 影响的记录行数
        internal static int Update(string oql, ParameterList parameters)
        {
            using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return ExcuteUpdateCommand(cmd, oql, parameters);
                }
            }
        }
		
		/// 
        /// 使用事务的更新方法
        /// 
        /// 实现共享Connection的对象
        /// 对象查询语句
        /// 参数列表
        /// 影响的记录行数
        internal static int Update(Connection connection, string oql, ParameterList parameters)
        {
            return ExcuteUpdateCommand(connection.Command, oql, parameters);
        }
		#endregion
		
		#region 查询实体集合
		/// 
        /// 执行Command获取对象列表
        /// 
        /// Command对象
		/// 递归类型
        /// 递归深度
        /// 实体类对象列表
        internal static List ExcuteSelectCommand(SqlCommand cmd,RecursiveType recursiveType,int recursiveDepth)
        {
            List operationRecordList = new List();
            using (SqlDataReader dr = cmd.ExecuteReader())
            {
                while (dr.Read())
                {
                    OperationRecord operationRecord = DataReaderToEntity(dr);
                    operationRecordList.Add(operationRecord);
                }
            }
			return operationRecordList;
        }
		/// 
        /// 执行查询命令
        /// 
        /// Command对象
        /// 对象查询语句
        /// 参数列表
		/// 递归类型
        /// 递归深度
        /// 实体类对象集合
        internal static List ExcuteSelectCommand(SqlCommand cmd, string oql, ParameterList parameters,RecursiveType recursiveType,int recursiveDepth)
        {
            //解析过滤部份Sql语句
            string filterString = SyntaxAnalyzer.ParseSql(oql, new OperationRecordMap());
            if (filterString != string.Empty)
            {
				if(filterString.Trim().ToLower().IndexOf("order ")!=0)
                	filterString = " where " + filterString;
            }
            cmd.Parameters.Clear();
            cmd.CommandText = "select * from OperationRecord " + filterString;
            //添加参数
            if (parameters != null)
            {
                foreach (string key in parameters.Keys)
                {
                    cmd.Parameters.Add(new SqlParameter(key, parameters[key]));
                }
            }
            return ExcuteSelectCommand(cmd, recursiveType, recursiveDepth);
        }
		
		/// 
        /// 根据对象查询语句查询实体集合
        /// 
        /// 实体类对象集合
        internal static List Select()
        {
			using(SqlConnection conn=new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "select * from OperationRecord";
                    return ExcuteSelectCommand(cmd, RecursiveType.Parent, 1);
                }
            }
        }
		/// 
        /// 根据对象查询语句查询实体集合
        /// 
		/// 递归类型
        /// 递归深度
        /// 实体类对象集合
        internal static List Select(RecursiveType recursiveType, int recursiveDepth)
        {
			using(SqlConnection conn=new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "select * from OperationRecord";
                    return ExcuteSelectCommand(cmd, recursiveType, recursiveDepth);
                }
            }
        }
		
		/// 
        /// 根据对象查询语句查询实体集合
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 实体类对象集合
        internal static List Select(string oql, ParameterList parameters)
        {
			using(SqlConnection conn=new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return ExcuteSelectCommand(cmd, oql, parameters, RecursiveType.Parent, 1);
                }
            }
        }
		
		/// 
        /// 根据对象查询语句查询实体集合
        /// 
        /// 对象查询语句
        /// 参数列表
		/// 递归类型
        /// 递归深度
        /// 实体类对象集合
        internal static List Select(string oql, ParameterList parameters,RecursiveType recursiveType, int recursiveDepth)
        {
			using(SqlConnection conn=new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return ExcuteSelectCommand(cmd, oql, parameters, recursiveType, recursiveDepth);
                }
            }
        }
		
		/// 
        /// 根据对象查询语句查询实体集合(启用事务)
        /// 
        /// 连接对象
        /// 对象查询语句
        /// 参数列表
		/// 递归类型
        /// 递归深度
        /// 实体类对象集合
        internal static List Select(Connection connection, string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
        {
            return ExcuteSelectCommand(connection.Command, oql, parameters,recursiveType, recursiveDepth);
        }
		#endregion
		
		#region 查询单个实体
		
		/// 
        /// 递归查询单个实体
        /// 
        /// Command对象
		/// 递归类型
        /// 递归深度
        /// 实体对象
		internal static OperationRecord ExcuteSelectSingleCommand(SqlCommand cmd,RecursiveType recursiveType,int recursiveDepth)
		{
			OperationRecord operationRecord=null;
			using (SqlDataReader dr = cmd.ExecuteReader())
            {
			    if(dr.Read())
				    operationRecord = DataReaderToEntity(dr);
			}
			if(operationRecord==null)
			    return operationRecord;
            return operationRecord;
		}
		/// 
        /// 更据对象查询语句递归查询单个实体
        /// 
        /// Command对象
        /// 对象查询语句
        /// 参数列表
		/// 递归类型
        /// 递归深度
        /// 实体对象
        internal static OperationRecord ExcuteSelectSingleCommand(SqlCommand cmd, string oql, ParameterList parameters,RecursiveType recursiveType,int recursiveDepth)
        {
            //解析过滤部份Sql语句
            string filterString = SyntaxAnalyzer.ParseSql(oql, new OperationRecordMap());
			if(filterString!=string.Empty)
			{
			    filterString=" where "+filterString;
			}
            cmd.CommandText = "select * from OperationRecord " + filterString;
			cmd.Parameters.Clear();
            //添加参数
            if (parameters != null)
            {
                foreach (string key in parameters.Keys)
                {
                    cmd.Parameters.Add(new SqlParameter(key, parameters[key]));
                }
            }
            return ExcuteSelectSingleCommand(cmd, recursiveType, recursiveDepth);
        }
				
		/// 
        /// 更据对象查询语句递归查询单个实体
        /// 
        /// Command对象
        /// 对象查询语句
        /// 参数列表
		/// 递归类型
        /// 递归深度
        /// 实体对象
        internal static OperationRecord SelectSingle(string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
        {
            using(SqlConnection conn=new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return ExcuteSelectSingleCommand(cmd, oql, parameters, recursiveType, recursiveDepth);
                }   
            } 
        }
		
		/// 
        /// 更据对象查询语句查询单个实体
        /// 
        /// Command对象
        /// 对象查询语句
        /// 参数列表
        /// 实体对象
        internal static OperationRecord SelectSingle(string oql, ParameterList parameters)
        {
            return SelectSingle(oql,parameters,RecursiveType.Parent,1);
        }
		
		/// 
        /// 更据对象查询语句并启用事务查询单个实体
        /// 
        /// 连接对象
        /// 对象查询语句
        /// 参数列表
        /// 实体对象
        internal static OperationRecord SelectSingle(Connection connection, string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
        {
            return ExcuteSelectSingleCommand(connection.Command, oql, parameters, recursiveType, recursiveDepth);
        }
		
		/// 
        /// 更据主键值递归查询单个实体
        /// 
        /// Command对象
        /// 主键值
		/// 递归类型
        /// 递归深度
        /// 实体对象
        internal static OperationRecord SelectSingle(SqlCommand cmd, int? id,RecursiveType recursiveType,int recursiveDepth)
		{
		    cmd.Parameters.Clear();
			if(id.HasValue)
			{
		    	cmd.CommandText = "select * from OperationRecord where Id=@pk";
				cmd.Parameters.Add(new SqlParameter("@pk",id.Value));
			}
			else
			{
			    cmd.CommandText = "select * from OperationRecord where Id is null";
			}
			return ExcuteSelectSingleCommand(cmd, recursiveType, recursiveDepth);
		}
		
		/// 
        /// 按主键字段查询特定实体
        /// 
        /// 主键值
        /// 实体类对象
        internal static OperationRecord SelectSingle(int? id)
        {
            using(SqlConnection conn=new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return SelectSingle(cmd,id,RecursiveType.Parent,1);
                }   
            } 
        }
		/// 
        /// 按主键字段查询特定实体
        /// 
        /// 主键值
		/// 递归类型
        /// 递归深度
        /// 实体类对象
        internal static OperationRecord SelectSingle(int? id, RecursiveType recursiveType, int recursiveDepth)
        {
            using(SqlConnection conn=new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return SelectSingle(cmd,id, recursiveType, recursiveDepth);
                }   
            } 
        }
		
		/// 
        /// 使用事务并按主键字段查询特定实体
        /// 
		/// 连接对象
        /// 主键值
        /// 实体类对象
        internal static OperationRecord SelectSingle(Connection connection,int? id, RecursiveType recursiveType, int recursiveDepth)
        {
			return SelectSingle(connection.Command, id, recursiveType, recursiveDepth);
        }
		#endregion
		
				
		/// 
        /// 从DataReader中取出值生成实体对象
        /// 
        /// 查询对象
        /// 过滤条件字符串
		private static OperationRecord DataReaderToEntity(SqlDataReader dr)
		{
		    OperationRecord entity = new OperationRecord ();
			if(dr["Id"]!=System.DBNull.Value)
			{
			    entity.Id=Convert.ToInt32(dr["Id"]);
			}
			if(dr["PatientId"]!=System.DBNull.Value)
			{
			    entity.PatientId=Convert.ToInt32(dr["PatientId"]);
			}
			if(dr["OperationApplyId"]!=System.DBNull.Value)
			{
			    entity.OperationApplyId=Convert.ToInt32(dr["OperationApplyId"]);
			}
			if(dr["InRoomTime"]!=System.DBNull.Value)
			{
			    entity.InRoomTime=Convert.ToDateTime(dr["InRoomTime"]);
			}
			if(dr["OutRoomTime"]!=System.DBNull.Value)
			{
			    entity.OutRoomTime=Convert.ToDateTime(dr["OutRoomTime"]);
			}
			if(dr["OperationBeginTime"]!=System.DBNull.Value)
			{
			    entity.OperationBeginTime=Convert.ToDateTime(dr["OperationBeginTime"]);
			}
			if(dr["OperationEndTime"]!=System.DBNull.Value)
			{
			    entity.OperationEndTime=Convert.ToDateTime(dr["OperationEndTime"]);
			}
			if(dr["AnesthesiaBeginTime"]!=System.DBNull.Value)
			{
			    entity.AnesthesiaBeginTime=Convert.ToDateTime(dr["AnesthesiaBeginTime"]);
			}
			if(dr["AnesthesiaEndTime"]!=System.DBNull.Value)
			{
			    entity.AnesthesiaEndTime=Convert.ToDateTime(dr["AnesthesiaEndTime"]);
			}
			if(dr["ASALevel"]!=System.DBNull.Value)
			{
			    entity.ASALevel=Convert.ToInt32(dr["ASALevel"]);
			}
			if(dr["SpecialCase"]!=System.DBNull.Value)
			{
			    entity.SpecialCase=dr["SpecialCase"].ToString();
			}
			if(dr["Fasting"]!=System.DBNull.Value)
			{
			    entity.Fasting=Convert.ToInt32(dr["Fasting"]);
			}
			if(dr["BloodType"]!=System.DBNull.Value)
			{
			    entity.BloodType=dr["BloodType"].ToString();
			}
			if(dr["OperationDate"]!=System.DBNull.Value)
			{
			    entity.OperationDate=dr["OperationDate"].ToString();
			}
			if(dr["OpeSpecialCondition"]!=System.DBNull.Value)
			{
			    entity.OpeSpecialCondition=dr["OpeSpecialCondition"].ToString();
			}
			if(dr["BMI"]!=System.DBNull.Value)
			{
			    entity.BMI=dr["BMI"].ToString();
			}
			if(dr["BeforeDrugs"]!=System.DBNull.Value)
			{
			    entity.BeforeDrugs=dr["BeforeDrugs"].ToString();
			}
			if(dr["AnaesthesiaMethodName"]!=System.DBNull.Value)
			{
			    entity.AnaesthesiaMethodName=dr["AnaesthesiaMethodName"].ToString();
			}
			if(dr["AnaesthesiaTechnology"]!=System.DBNull.Value)
			{
			    entity.AnaesthesiaTechnology=dr["AnaesthesiaTechnology"].ToString();
			}
			if(dr["AnaesthesiaComplication"]!=System.DBNull.Value)
			{
			    entity.AnaesthesiaComplication=dr["AnaesthesiaComplication"].ToString();
			}
			if(dr["SpecialEvent"]!=System.DBNull.Value)
			{
			    entity.SpecialEvent=dr["SpecialEvent"].ToString();
			}
			if(dr["SuddenSituation"]!=System.DBNull.Value)
			{
			    entity.SuddenSituation=dr["SuddenSituation"].ToString();
			}
			if(dr["ConditionChage"]!=System.DBNull.Value)
			{
			    entity.ConditionChage=dr["ConditionChage"].ToString();
			}
			if(dr["RescueMeasures"]!=System.DBNull.Value)
			{
			    entity.RescueMeasures=dr["RescueMeasures"].ToString();
			}
			if(dr["RescueTime"]!=System.DBNull.Value)
			{
			    entity.RescueTime=dr["RescueTime"].ToString();
			}
			if(dr["RescuePerson"]!=System.DBNull.Value)
			{
			    entity.RescuePerson=dr["RescuePerson"].ToString();
			}
			if(dr["RescueTechnology"]!=System.DBNull.Value)
			{
			    entity.RescueTechnology=dr["RescueTechnology"].ToString();
			}
			if(dr["SpileInTime"]!=System.DBNull.Value)
			{
			    entity.SpileInTime=dr["SpileInTime"].ToString();
			}
			if(dr["SpileOutTime"]!=System.DBNull.Value)
			{
			    entity.SpileOutTime=dr["SpileOutTime"].ToString();
			}
			if(dr["SpileSituation"]!=System.DBNull.Value)
			{
			    entity.SpileSituation=dr["SpileSituation"].ToString();
			}
			if(dr["SpileWard"]!=System.DBNull.Value)
			{
			    entity.SpileWard=dr["SpileWard"].ToString();
			}
			if(dr["SpileBeforCondition"]!=System.DBNull.Value)
			{
			    entity.SpileBeforCondition=dr["SpileBeforCondition"].ToString();
			}
			if(dr["SpileAffterCondition"]!=System.DBNull.Value)
			{
			    entity.SpileAffterCondition=dr["SpileAffterCondition"].ToString();
			}
			if(dr["RefluxFlag"]!=System.DBNull.Value)
			{
			    entity.RefluxFlag=dr["RefluxFlag"].ToString();
			}
			if(dr["MuscleStrengthRecovery"]!=System.DBNull.Value)
			{
			    entity.MuscleStrengthRecovery=dr["MuscleStrengthRecovery"].ToString();
			}
			if(dr["CoughReflex"]!=System.DBNull.Value)
			{
			    entity.CoughReflex=dr["CoughReflex"].ToString();
			}
			if(dr["InOperaRoomState"]!=System.DBNull.Value)
			{
			    entity.InOperaRoomState=dr["InOperaRoomState"].ToString();
			}
			if(dr["BloodPressure"]!=System.DBNull.Value)
			{
			    entity.BloodPressure=dr["BloodPressure"].ToString();
			}
			if(dr["Tempeture"]!=System.DBNull.Value)
			{
			    entity.Tempeture=dr["Tempeture"].ToString();
			}
			if(dr["Pulse"]!=System.DBNull.Value)
			{
			    entity.Pulse=dr["Pulse"].ToString();
			}
			if(dr["Breath"]!=System.DBNull.Value)
			{
			    entity.Breath=dr["Breath"].ToString();
			}
			if(dr["IsolationIndicator"]!=System.DBNull.Value)
			{
			    entity.IsolationIndicator=dr["IsolationIndicator"].ToString();
			}
			if(dr["AnesMachine"]!=System.DBNull.Value)
			{
			    entity.AnesMachine=dr["AnesMachine"].ToString();
			}
			if(dr["ControlledAnalgesia"]!=System.DBNull.Value)
			{
			    entity.ControlledAnalgesia=dr["ControlledAnalgesia"].ToString();
			}
			if(dr["AnalgesiaModel"]!=System.DBNull.Value)
			{
			    entity.AnalgesiaModel=dr["AnalgesiaModel"].ToString();
			}
			if(dr["AnalgesiaRate"]!=System.DBNull.Value)
			{
			    entity.AnalgesiaRate=dr["AnalgesiaRate"].ToString();
			}
			if(dr["AnalgesiaDrug"]!=System.DBNull.Value)
			{
			    entity.AnalgesiaDrug=dr["AnalgesiaDrug"].ToString();
			}
			if(dr["AldreteScore"]!=System.DBNull.Value)
			{
			    entity.AldreteScore=dr["AldreteScore"].ToString();
			}
			if(dr["RouteMonitoring"]!=System.DBNull.Value)
			{
			    entity.RouteMonitoring=dr["RouteMonitoring"].ToString();
			}
			if(dr["Entourage"]!=System.DBNull.Value)
			{
			    entity.Entourage=dr["Entourage"].ToString();
			}
			if(dr["Remark1"]!=System.DBNull.Value)
			{
			    entity.Remark1=dr["Remark1"].ToString();
			}
			if(dr["Remark2"]!=System.DBNull.Value)
			{
			    entity.Remark2=dr["Remark2"].ToString();
			}
			if(dr["Remark3"]!=System.DBNull.Value)
			{
			    entity.Remark3=dr["Remark3"].ToString();
			}
			if(dr["Crystal"]!=System.DBNull.Value)
			{
			    entity.Crystal=dr["Crystal"].ToString();
			}
			if(dr["Colloid"]!=System.DBNull.Value)
			{
			    entity.Colloid=dr["Colloid"].ToString();
			}
			if(dr["InAmount"]!=System.DBNull.Value)
			{
			    entity.InAmount=dr["InAmount"].ToString();
			}
			if(dr["OutAmount"]!=System.DBNull.Value)
			{
			    entity.OutAmount=dr["OutAmount"].ToString();
			}
			if(dr["OperationTimeSpan"]!=System.DBNull.Value)
			{
			    entity.OperationTimeSpan=dr["OperationTimeSpan"].ToString();
			}
			if(dr["AnaesthesiaTimeSpan"]!=System.DBNull.Value)
			{
			    entity.AnaesthesiaTimeSpan=dr["AnaesthesiaTimeSpan"].ToString();
			}
			if(dr["RoomTimeSpan"]!=System.DBNull.Value)
			{
			    entity.RoomTimeSpan=dr["RoomTimeSpan"].ToString();
			}
			if(dr["AnesthesiaDoctorTimeMinute"]!=System.DBNull.Value)
			{
			    entity.AnesthesiaDoctorTimeMinute=dr["AnesthesiaDoctorTimeMinute"].ToString();
			}
			if(dr["anesthesiaDoctorSucceedTimeMinute"]!=System.DBNull.Value)
			{
			    entity.AnesthesiaDoctorSucceedTimeMinute=dr["anesthesiaDoctorSucceedTimeMinute"].ToString();
			}
			if(dr["instrumentNurseTimeMinute"]!=System.DBNull.Value)
			{
			    entity.InstrumentNurseTimeMinute=dr["instrumentNurseTimeMinute"].ToString();
			}
			if(dr["instrumentNurseSucceedTimeMinute"]!=System.DBNull.Value)
			{
			    entity.InstrumentNurseSucceedTimeMinute=dr["instrumentNurseSucceedTimeMinute"].ToString();
			}
			if(dr["tourNurseTimeMinute"]!=System.DBNull.Value)
			{
			    entity.TourNurseTimeMinute=dr["tourNurseTimeMinute"].ToString();
			}
			if(dr["tourNurseSucceedTimeMinute"]!=System.DBNull.Value)
			{
			    entity.TourNurseSucceedTimeMinute=dr["tourNurseSucceedTimeMinute"].ToString();
			}
			if(dr["RecordPageCount"]!=System.DBNull.Value)
			{
			    entity.RecordPageCount=dr["RecordPageCount"].ToString();
			}
			if(dr["SignName"]!=System.DBNull.Value)
			{
			    entity.SignName=dr["SignName"].ToString();
			}
			if(dr["SignTime"]!=System.DBNull.Value)
			{
			    entity.SignTime=dr["SignTime"].ToString();
			}
			if(dr["RoomId"]!=System.DBNull.Value)
			{
			    entity.RoomId=Convert.ToInt32(dr["RoomId"]);
			}
			if(dr["State"]!=System.DBNull.Value)
			{
			    entity.State=Convert.ToInt32(dr["State"]);
			}
			if(dr["RecoverId"]!=System.DBNull.Value)
			{
			    entity.RecoverId=Convert.ToInt32(dr["RecoverId"]);
			}
			if(dr["OperatorNo"]!=System.DBNull.Value)
			{
			    entity.OperatorNo=dr["OperatorNo"].ToString();
			}
			if(dr["OperatorName"]!=System.DBNull.Value)
			{
			    entity.OperatorName=dr["OperatorName"].ToString();
			}
			if(dr["OperateDate"]!=System.DBNull.Value)
			{
			    entity.OperateDate=Convert.ToDateTime(dr["OperateDate"]);
			}
			if(dr["Remarks"]!=System.DBNull.Value)
			{
			    entity.Remarks=dr["Remarks"].ToString();
			}
			return entity;
		}
	}
}