DAL:代码
   public List<RS_Person> SearchPersonByMo(string P_NAME,string P_NUM,string P_IDCARD,string P_BirthDay,string  P_SEX,string  P_MARRIED,string P_TEL,string P_MOBLIE,string P_EMAIL,string  P_DEPARTMENT,int P_JOBSTATUS,string P_JOB,int P_WAGE_GRADE)
        {
            List<RS_Person> personList = new List<RS_Person>();
            string cmdText= "selectp.P_NAME,p.P_NUM,p.P_IDCARD,p.P_BirthDay,p.P_SEX,p.P_MARRIED,p.P_TEL,p.P_MOBLIE,p.P_EMAIL,p.P_DEPARTMENT,p.P_JOBSTATUS,p.P_JOB,p.P_WAGE_GRADE from RS_Person p where 1=1";   ///,p.P_JoinJobDay,p.P_LeaveJobDay,p.P_StartDay,p.P_EndDay
            if (P_NAME !="")
                cmdText += "and p_name  = "+ P_NAME +"";
            if (P_NUM != "")
                cmdText += "and p_num like '%" + P_NUM  +"%'";
            if (P_IDCARD != "")
                cmdText += "and p_idcard like '"+ P_IDCARD + "'";
            if (P_BirthDay != null)
                cmdText += "and p_birthday ="+P_BirthDay+"";
            if (P_SEX !=null)
                cmdText += "and p_sex ="+P_SEX+"";
            if (P_MARRIED != null)
                cmdText += "and p_married ="+P_MARRIED+"";
            if (P_TEL != "")
                cmdText += "and p_tel ="+P_TEL+"";
            if (P_MOBLIE != "")
                cmdText += "and p_moblie ="+P_MOBLIE+"";
            if (P_EMAIL != "")
                cmdText += "and p_email ="+P_EMAIL+"";
            if (P_DEPARTMENT !="")
                cmdText += "and p_department ="+P_DEPARTMENT+"";
            if (P_JOBSTATUS >0)
                cmdText += "and p_jobstatus ="+P_JOBSTATUS+"";
            if (P_JOB !="")
                cmdText += "and p_job ="+P_JOB+"";
            if (P_WAGE_GRADE > 0)
                cmdText += "and p_wage_grade ="+P_WAGE_GRADE+"";
            //if (P_JoinJobDay != null)
            //    cmdText += "and p_jionjobtime ="+P_JoinJobDay+"";
            //if (P_LeaveJobDay != null)
            //    cmdText += "and p_leavejobday ="+P_LeaveJobDay+"";
            //if (P_StartDay != null)
            //    cmdText += "and p_startday ="+P_StartDay+"";
            //if (P_EndDay != null)
            //    cmdText += "and p_endday ="+P_EndDay+"";            cmdText += "order by p.P_JoinJobDay desc";
            SqlCommand command = new SqlCommand(cmdText);
            using (SqlDataReader dr = SQLDBHelper.ExecuteReader(SQLDBHelper.ConnectionString, command))///“DBUtility.SQLDBHelper”的类型初始值设定项引发异常
            {
                while (dr.Read())
                {
                    RS_Person person = new RS_Person();
                    person.P_ID = dr.GetInt64(0);
                                        if (dr[1] is System.DBNull)
                        person.P_NUM = String.Empty;
                    else
                        person.P_NUM = dr.GetString(1);                    if (dr[2] is System.DBNull)
                        person.P_IDCARD = String.Empty;
                    else
                        person.P_IDCARD = dr.GetString(2);                    if (dr[3] is System.DBNull)
                        person.P_BirthDay = DateTime.Parse("1900-01-01 00:00:00");
                    else
                        person.P_BirthDay = dr.GetDateTime(3);
                    if (dr[4] is System.DBNull)
                        person.P_SEX = true;
                    else
                        person.P_SEX = dr.GetBoolean(4);
                    if (dr[5] is System.DBNull)
                        person.P_MARRIED = true;
                    else
                        person.P_MARRIED = dr.GetBoolean(5);
                    if (dr[6] is System.DBNull)
                        person.P_TEL = String.Empty;
                    else
                        person.P_TEL = dr.GetString(6);
                    if (dr[7] is System.DBNull)
                        person.P_MOBLIE = String.Empty;
                    else
                        person.P_MOBLIE = dr.GetString(7);
                    if (dr[8] is System.DBNull)
                        person.P_EMAIL = String.Empty;
                    else
                        person.P_EMAIL = dr.GetString(8);
                    if (dr[9] is System.DBNull)
                        person.P_DEPARTMENT = 0;
                    else
                        person.P_DEPARTMENT = dr.GetInt64(9);
                    if (dr[10] is System.DBNull)
                        person.P_JOBSTATUS = 0;
                    else
                        person.P_JOBSTATUS = dr.GetInt32(10);
                    if (dr[11] is System.DBNull)
                        person.P_JOB = 0;
                    else
                        person.P_JOB = dr.GetInt64(11);
                    if (dr[12] is System.DBNull)
                        person.P_WAGE_GRADE = 0;
                    else
                        person.P_WAGE_GRADE = dr.GetInt32(12);
                    //if (dr[13] is System.DBNull)
                    //    person.P_JoinJobDay = DateTime.Parse("1900-01-01 00:00:00");
                    //else
                    //    person.P_JoinJobDay = dr.GetDateTime(13);
                    //if (dr[14] is System.DBNull)
                    //    person.P_LeaveJobDay = DateTime.Parse("1900-01-01 00:00:00");
                    //else
                    //    person.P_LeaveJobDay = dr.GetDateTime(14);
                    //if (dr[15] is System.DBNull)
                    //    person.P_StartDay = DateTime.Parse("1900-01-01 00:00:00");
                    //else
                    //    person.P_StartDay = dr.GetDateTime(15);
                    //if (dr[16] is System.DBNull)
                    //    person.P_EndDay = DateTime.Parse("1900-01-01 00:00:00");
                    //else
                    //    person.P_EndDay = dr.GetDateTime(16);
                    personList.Add(person);
                }
            }
            return personList;        }