public CY.CSTS.Core.Business.view_INSTRUMENT FreshRollCall(Guid instrumentid)
        {
            if (instrumentid == Guid.Empty)
            {
                return null;
            }

            SqlServerUtility sql = new SqlServerUtility();

            sql.AddParameter("@Id", SqlDbType.UniqueIdentifier, instrumentid);

            SqlDataReader reader = sql.ExecuteSPReader("FreshInstrumentRollCall");

            if (reader != null && !reader.IsClosed && reader.Read())
            {
                Core.Business.view_INSTRUMENT iNSTRUMENT = new Core.Business.view_INSTRUMENT();

                if (!reader.IsDBNull(0)) iNSTRUMENT.Id = reader.GetGuid(0);
                if (!reader.IsDBNull(1)) iNSTRUMENT.InstruCode = reader.GetString(1);
                if (!reader.IsDBNull(2)) iNSTRUMENT.LaboratoryId = reader.GetGuid(2);
                if (!reader.IsDBNull(3)) iNSTRUMENT.WorkingforUnitId = reader.GetGuid(3);
                if (!reader.IsDBNull(4)) iNSTRUMENT.MachineGroupId = reader.GetGuid(4);
                if (!reader.IsDBNull(5)) iNSTRUMENT.PERSONNELID = reader.GetGuid(5);
                if (!reader.IsDBNull(6)) iNSTRUMENT.HNAME = reader.GetString(6);
                if (!reader.IsDBNull(7)) iNSTRUMENT.ENAME = reader.GetString(7);
                if (!reader.IsDBNull(8)) iNSTRUMENT.ALIAS = reader.GetString(8);
                if (!reader.IsDBNull(9)) iNSTRUMENT.CLASSCODE = reader.GetString(9);
                if (!reader.IsDBNull(10)) iNSTRUMENT.SITE = reader.GetGuid(10);
                if (!reader.IsDBNull(11)) iNSTRUMENT.CITY = reader.GetGuid(11);
                if (!reader.IsDBNull(12)) iNSTRUMENT.SPECTYPE = reader.GetString(12);
                if (!reader.IsDBNull(13)) iNSTRUMENT.GETMODE = reader.GetGuid(13);
                if (!reader.IsDBNull(14)) iNSTRUMENT.WorkState = reader.GetInt32(14);
                if (!reader.IsDBNull(15)) iNSTRUMENT.UseState = reader.GetInt32(15);
                if (!reader.IsDBNull(16)) iNSTRUMENT.MANUFACTURE = reader.GetString(16);
                if (!reader.IsDBNull(17)) iNSTRUMENT.COUNTRYCODE = reader.GetGuid(17);
                if (!reader.IsDBNull(18)) iNSTRUMENT.PRODUCINGAREA = reader.GetString(18);
                if (!reader.IsDBNull(19)) iNSTRUMENT.PRODUCESORT = reader.GetGuid(19);
                if (!reader.IsDBNull(20)) iNSTRUMENT.VALUERMB = reader.GetDecimal(20);
                if (!reader.IsDBNull(21)) iNSTRUMENT.NATIONALPAY = reader.GetDecimal(21);
                if (!reader.IsDBNull(22)) iNSTRUMENT.BUGETSOURCE = reader.GetGuid(22);
                if (!reader.IsDBNull(23)) iNSTRUMENT.PRODUCEDATE = reader.GetDateTime(23);
                if (!reader.IsDBNull(24)) iNSTRUMENT.PURCHASEDATE = reader.GetDateTime(24);
                if (!reader.IsDBNull(25)) iNSTRUMENT.DISCARDTIME = reader.GetDateTime(25);
                if (!reader.IsDBNull(26)) iNSTRUMENT.GUIDELINE = reader.GetString(26);
                if (!reader.IsDBNull(27)) iNSTRUMENT.FUNCTIONFEATURES = reader.GetString(27);
                if (!reader.IsDBNull(28)) iNSTRUMENT.EXAMINATION = reader.GetGuid(28);
                if (!reader.IsDBNull(29)) iNSTRUMENT.HasCMA = reader.GetInt32(29);
                if (!reader.IsDBNull(30)) iNSTRUMENT.IsSpecial = reader.GetInt32(30);
                if (!reader.IsDBNull(31)) iNSTRUMENT.TOTALLY = reader.GetInt32(31);
                if (!reader.IsDBNull(32)) iNSTRUMENT.ACCEPTMISSION = reader.GetInt32(32);
                if (!reader.IsDBNull(33)) iNSTRUMENT.EXTERNALSERVICE = reader.GetInt32(33);
                if (!reader.IsDBNull(34)) iNSTRUMENT.PICTURE = reader.GetInt32(34);
                if (!reader.IsDBNull(35)) iNSTRUMENT.ATTACHMENT = reader.GetInt32(35);
                if (!reader.IsDBNull(36)) iNSTRUMENT.MEDIA = reader.GetInt32(36);
                if (!reader.IsDBNull(37)) iNSTRUMENT.PURPOSEID = reader.GetString(37);
                if (!reader.IsDBNull(38)) iNSTRUMENT.REALMID = reader.GetString(38);
                if (!reader.IsDBNull(39)) iNSTRUMENT.WRITEDATE = reader.GetDateTime(39);
                if (!reader.IsDBNull(40)) iNSTRUMENT.UPDATEDATE = reader.GetDateTime(40);
                if (!reader.IsDBNull(41)) iNSTRUMENT.REMARK = reader.GetString(41);
                if (!reader.IsDBNull(42)) iNSTRUMENT.AUDITINGSTATE = reader.GetInt32(42);
                if (!reader.IsDBNull(43)) iNSTRUMENT.ASSESSOR = reader.GetString(43);
                if (!reader.IsDBNull(44)) iNSTRUMENT.AUDITINGDATE = reader.GetDateTime(44);
                if (!reader.IsDBNull(45)) iNSTRUMENT.RollCall = reader.GetInt64(45);
                if (!reader.IsDBNull(46)) iNSTRUMENT.OringalId = reader.GetInt32(46);
                if (!reader.IsDBNull(47)) iNSTRUMENT.Gather = reader.GetInt32(47);

                reader.Close();

                iNSTRUMENT.MarkOld();

                return iNSTRUMENT;
            }
            else
            {
                if (reader != null && !reader.IsClosed)
                    reader.Close();

                return null;
            }
        }
        public IEnumerable<view_INSTRUMENT> GetRelativeInstruments(IEnumerable<view_INSTRUMENT> instruments)
        {
            try
            {
                if (instruments == null || instruments.Count() <= 0)
                {
                    return null;
                }
                StringBuilder sbFilter = new StringBuilder();

                sbFilter.Append(" ( ");

                bool isFirst = true;
                foreach (view_INSTRUMENT i in instruments)
                {
                    if (isFirst)
                    {
                        isFirst = false;
                        sbFilter.Append(string.Format(" classcode= '{0}'", i.CLASSCODE));
                    }
                    else
                    {
                        sbFilter.Append(string.Format(" or classcode= '{0}' ", i.CLASSCODE));
                    }
                }
                sbFilter.Append(" ) ");

                IList<Core.Business.view_INSTRUMENT> iNSTRUMENTlist = new List<Core.Business.view_INSTRUMENT>();

                SqlServerUtility sql = new SqlServerUtility();

                SqlDataReader reader = sql.ExecuteSqlReader(string.Format(Sql_GetRelativeInstrumet, CY.Utility.Common.CodeInterface.InstrumentState.Passed.State, sbFilter.ToString()));

                if (reader != null)
                {
                    while (reader.Read())
                    {
                        Core.Business.view_INSTRUMENT iNSTRUMENT = new Core.Business.view_INSTRUMENT();

                        if (!reader.IsDBNull(0)) iNSTRUMENT.Id = reader.GetGuid(0);
                        if (!reader.IsDBNull(1)) iNSTRUMENT.InstruCode = reader.GetString(1);
                        if (!reader.IsDBNull(2)) iNSTRUMENT.LaboratoryId = reader.GetGuid(2);
                        if (!reader.IsDBNull(3)) iNSTRUMENT.WorkingforUnitId = reader.GetGuid(3);
                        if (!reader.IsDBNull(4)) iNSTRUMENT.MachineGroupId = reader.GetGuid(4);
                        if (!reader.IsDBNull(5)) iNSTRUMENT.PERSONNELID = reader.GetGuid(5);
                        if (!reader.IsDBNull(6)) iNSTRUMENT.HNAME = reader.GetString(6);
                        if (!reader.IsDBNull(7)) iNSTRUMENT.ENAME = reader.GetString(7);
                        if (!reader.IsDBNull(8)) iNSTRUMENT.ALIAS = reader.GetString(8);
                        if (!reader.IsDBNull(9)) iNSTRUMENT.CLASSCODE = reader.GetString(9);
                        if (!reader.IsDBNull(10)) iNSTRUMENT.SITE = reader.GetGuid(10);
                        if (!reader.IsDBNull(11)) iNSTRUMENT.CITY = reader.GetGuid(11);
                        if (!reader.IsDBNull(12)) iNSTRUMENT.SPECTYPE = reader.GetString(12);
                        if (!reader.IsDBNull(13)) iNSTRUMENT.GETMODE = reader.GetGuid(13);
                        if (!reader.IsDBNull(14)) iNSTRUMENT.WorkState = reader.GetInt32(14);
                        if (!reader.IsDBNull(15)) iNSTRUMENT.UseState = reader.GetInt32(15);
                        if (!reader.IsDBNull(16)) iNSTRUMENT.MANUFACTURE = reader.GetString(16);
                        if (!reader.IsDBNull(17)) iNSTRUMENT.COUNTRYCODE = reader.GetGuid(17);
                        if (!reader.IsDBNull(18)) iNSTRUMENT.PRODUCINGAREA = reader.GetString(18);
                        if (!reader.IsDBNull(19)) iNSTRUMENT.PRODUCESORT = reader.GetGuid(19);
                        if (!reader.IsDBNull(20)) iNSTRUMENT.VALUERMB = reader.GetDecimal(20);
                        if (!reader.IsDBNull(21)) iNSTRUMENT.NATIONALPAY = reader.GetDecimal(21);
                        if (!reader.IsDBNull(22)) iNSTRUMENT.BUGETSOURCE = reader.GetGuid(22);
                        if (!reader.IsDBNull(23)) iNSTRUMENT.PRODUCEDATE = reader.GetDateTime(23);
                        if (!reader.IsDBNull(24)) iNSTRUMENT.PURCHASEDATE = reader.GetDateTime(24);
                        if (!reader.IsDBNull(25)) iNSTRUMENT.DISCARDTIME = reader.GetDateTime(25);
                        if (!reader.IsDBNull(26)) iNSTRUMENT.GUIDELINE = reader.GetString(26);
                        if (!reader.IsDBNull(27)) iNSTRUMENT.FUNCTIONFEATURES = reader.GetString(27);
                        if (!reader.IsDBNull(28)) iNSTRUMENT.EXAMINATION = reader.GetGuid(28);
                        if (!reader.IsDBNull(29)) iNSTRUMENT.HasCMA = reader.GetInt32(29);
                        if (!reader.IsDBNull(30)) iNSTRUMENT.IsSpecial = reader.GetInt32(30);
                        if (!reader.IsDBNull(31)) iNSTRUMENT.TOTALLY = reader.GetInt32(31);
                        if (!reader.IsDBNull(32)) iNSTRUMENT.ACCEPTMISSION = reader.GetInt32(32);
                        if (!reader.IsDBNull(33)) iNSTRUMENT.EXTERNALSERVICE = reader.GetInt32(33);
                        if (!reader.IsDBNull(34)) iNSTRUMENT.PICTURE = reader.GetInt32(34);
                        if (!reader.IsDBNull(35)) iNSTRUMENT.ATTACHMENT = reader.GetInt32(35);
                        if (!reader.IsDBNull(36)) iNSTRUMENT.MEDIA = reader.GetInt32(36);
                        if (!reader.IsDBNull(37)) iNSTRUMENT.PURPOSEID = reader.GetString(37);
                        if (!reader.IsDBNull(38)) iNSTRUMENT.REALMID = reader.GetString(38);
                        if (!reader.IsDBNull(39)) iNSTRUMENT.WRITEDATE = reader.GetDateTime(39);
                        if (!reader.IsDBNull(40)) iNSTRUMENT.UPDATEDATE = reader.GetDateTime(40);
                        if (!reader.IsDBNull(41)) iNSTRUMENT.REMARK = reader.GetString(41);
                        if (!reader.IsDBNull(42)) iNSTRUMENT.AUDITINGSTATE = reader.GetInt32(42);
                        if (!reader.IsDBNull(43)) iNSTRUMENT.ASSESSOR = reader.GetString(43);
                        if (!reader.IsDBNull(44)) iNSTRUMENT.AUDITINGDATE = reader.GetDateTime(44);
                        if (!reader.IsDBNull(45)) iNSTRUMENT.RollCall = reader.GetInt64(45);
                        if (!reader.IsDBNull(46)) iNSTRUMENT.OringalId = reader.GetInt32(46);
                        if (!reader.IsDBNull(47)) iNSTRUMENT.Gather = reader.GetInt32(47);
                        iNSTRUMENT.MarkOld();
                        iNSTRUMENTlist.Add(iNSTRUMENT);
                    }
                    reader.Close();
                }
                return iNSTRUMENTlist;

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public IList<Core.Business.view_INSTRUMENT> GetINSTRUMENTByPage(string sqlwhere, int pagenumber, int pagesize)
        {
            IList<Core.Business.view_INSTRUMENT> iNSTRUMENTlist = new List<Core.Business.view_INSTRUMENT>();
            //SqlServerUtility sql = new SqlServerUtility();
            //string sqlSelAll = "SELECT view_INSTRUMENT.[Id],[InstruCode],[LaboratoryId],[WorkingforUnitId],[MachineGroupId],[PERSONNELID],[HNAME],[ENAME],view_INSTRUMENT.[ALIAS],[CLASSCODE],[SITE],[CITY],[SPECTYPE],[GETMODE],[WorkState],[UseState],[MANUFACTURE],[COUNTRYCODE],[PRODUCINGAREA],[PRODUCESORT],[VALUERMB],[NATIONALPAY],[BUGETSOURCE],[PRODUCEDATE],[PURCHASEDATE],[DISCARDTIME],[GUIDELINE],[FUNCTIONFEATURES],[EXAMINATION],[HasCMA],[IsSpecial],[TOTALLY],[ACCEPTMISSION],[EXTERNALSERVICE],[PICTURE],[ATTACHMENT],[MEDIA],[PURPOSEID],[REALMID],[WRITEDATE],view_INSTRUMENT.[UPDATEDATE],view_INSTRUMENT.[REMARK],view_INSTRUMENT.[AUDITINGSTATE],view_INSTRUMENT.[ASSESSOR],view_INSTRUMENT.[AUDITINGDATE] FROM[dbo].[view_INSTRUMENT]";
            //sqlSelAll += sqlwhere;
            //SqlDataReader reader = sql.ExecuteSqlReader(sqlSelAll);

            SqlServerUtility sql = new SqlServerUtility();
            sql.AddParameter("@Tables", SqlDbType.VarChar, "view_INSTRUMENT");
            sql.AddParameter("@PK", SqlDbType.VarChar, "Id");
            sql.AddParameter("@PageNumber", SqlDbType.Int, pagenumber);
            sql.AddParameter("@PageSize", SqlDbType.Int, pagesize);
            //sql.AddParameter("@LawSortID", SqlDbType.UniqueIdentifier, sortId);
            sql.AddParameter("@Filter", SqlDbType.VarChar, sqlwhere);
            SqlDataReader reader = sql.ExecuteSPReader("Paging_RowCount");

            if (reader != null)
            {
                while (reader.Read())
                {
                    Core.Business.view_INSTRUMENT iNSTRUMENT = new Core.Business.view_INSTRUMENT();

                    if (!reader.IsDBNull(0)) iNSTRUMENT.Id = reader.GetGuid(0);
                    if (!reader.IsDBNull(1)) iNSTRUMENT.InstruCode = reader.GetString(1);
                    if (!reader.IsDBNull(2)) iNSTRUMENT.LaboratoryId = reader.GetGuid(2);
                    if (!reader.IsDBNull(3)) iNSTRUMENT.WorkingforUnitId = reader.GetGuid(3);
                    if (!reader.IsDBNull(4)) iNSTRUMENT.MachineGroupId = reader.GetGuid(4);
                    if (!reader.IsDBNull(5)) iNSTRUMENT.PERSONNELID = reader.GetGuid(5);
                    if (!reader.IsDBNull(6)) iNSTRUMENT.HNAME = reader.GetString(6);
                    if (!reader.IsDBNull(7)) iNSTRUMENT.ENAME = reader.GetString(7);
                    if (!reader.IsDBNull(8)) iNSTRUMENT.ALIAS = reader.GetString(8);
                    if (!reader.IsDBNull(9)) iNSTRUMENT.CLASSCODE = reader.GetString(9);
                    if (!reader.IsDBNull(10)) iNSTRUMENT.SITE = reader.GetGuid(10);
                    if (!reader.IsDBNull(11)) iNSTRUMENT.CITY = reader.GetGuid(11);
                    if (!reader.IsDBNull(12)) iNSTRUMENT.SPECTYPE = reader.GetString(12);
                    if (!reader.IsDBNull(13)) iNSTRUMENT.GETMODE = reader.GetGuid(13);
                    if (!reader.IsDBNull(14)) iNSTRUMENT.WorkState = reader.GetInt32(14);
                    if (!reader.IsDBNull(15)) iNSTRUMENT.UseState = reader.GetInt32(15);
                    if (!reader.IsDBNull(16)) iNSTRUMENT.MANUFACTURE = reader.GetString(16);
                    if (!reader.IsDBNull(17)) iNSTRUMENT.COUNTRYCODE = reader.GetGuid(17);
                    if (!reader.IsDBNull(18)) iNSTRUMENT.PRODUCINGAREA = reader.GetString(18);
                    if (!reader.IsDBNull(19)) iNSTRUMENT.PRODUCESORT = reader.GetGuid(19);
                    if (!reader.IsDBNull(20)) iNSTRUMENT.VALUERMB = reader.GetDecimal(20);
                    if (!reader.IsDBNull(21)) iNSTRUMENT.NATIONALPAY = reader.GetDecimal(21);
                    if (!reader.IsDBNull(22)) iNSTRUMENT.BUGETSOURCE = reader.GetGuid(22);
                    if (!reader.IsDBNull(23)) iNSTRUMENT.PRODUCEDATE = reader.GetDateTime(23);
                    if (!reader.IsDBNull(24)) iNSTRUMENT.PURCHASEDATE = reader.GetDateTime(24);
                    if (!reader.IsDBNull(25)) iNSTRUMENT.DISCARDTIME = reader.GetDateTime(25);
                    if (!reader.IsDBNull(26)) iNSTRUMENT.GUIDELINE = reader.GetString(26);
                    if (!reader.IsDBNull(27)) iNSTRUMENT.FUNCTIONFEATURES = reader.GetString(27);
                    if (!reader.IsDBNull(28)) iNSTRUMENT.EXAMINATION = reader.GetGuid(28);
                    if (!reader.IsDBNull(29)) iNSTRUMENT.HasCMA = reader.GetInt32(29);
                    if (!reader.IsDBNull(30)) iNSTRUMENT.IsSpecial = reader.GetInt32(30);
                    if (!reader.IsDBNull(31)) iNSTRUMENT.TOTALLY = reader.GetInt32(31);
                    if (!reader.IsDBNull(32)) iNSTRUMENT.ACCEPTMISSION = reader.GetInt32(32);
                    if (!reader.IsDBNull(33)) iNSTRUMENT.EXTERNALSERVICE = reader.GetInt32(33);
                    if (!reader.IsDBNull(34)) iNSTRUMENT.PICTURE = reader.GetInt32(34);
                    if (!reader.IsDBNull(35)) iNSTRUMENT.ATTACHMENT = reader.GetInt32(35);
                    if (!reader.IsDBNull(36)) iNSTRUMENT.MEDIA = reader.GetInt32(36);
                    if (!reader.IsDBNull(37)) iNSTRUMENT.PURPOSEID = reader.GetString(37);
                    if (!reader.IsDBNull(38)) iNSTRUMENT.REALMID = reader.GetString(38);
                    if (!reader.IsDBNull(39)) iNSTRUMENT.WRITEDATE = reader.GetDateTime(39);
                    if (!reader.IsDBNull(40)) iNSTRUMENT.UPDATEDATE = reader.GetDateTime(40);
                    if (!reader.IsDBNull(41)) iNSTRUMENT.REMARK = reader.GetString(41);
                    if (!reader.IsDBNull(42)) iNSTRUMENT.AUDITINGSTATE = reader.GetInt32(42);
                    if (!reader.IsDBNull(43)) iNSTRUMENT.ASSESSOR = reader.GetString(43);
                    if (!reader.IsDBNull(44)) iNSTRUMENT.AUDITINGDATE = reader.GetDateTime(44);
                    if (!reader.IsDBNull(45)) iNSTRUMENT.RollCall = reader.GetInt64(45);
                    if (!reader.IsDBNull(46)) iNSTRUMENT.OringalId = reader.GetInt32(46);
                    if (!reader.IsDBNull(47)) iNSTRUMENT.Gather = reader.GetInt32(47);
                    iNSTRUMENT.MarkOld();
                    iNSTRUMENTlist.Add(iNSTRUMENT);
                }
                reader.Close();
            }
            return iNSTRUMENTlist;
        }
        public IEnumerable<view_INSTRUMENT> GetNewestInstrument(int count)
        {
            if (count <= 0)
                throw new ArgumentException("the count is less than zero");

            IList<Core.Business.view_INSTRUMENT> iNSTRUMENTlist = new List<Core.Business.view_INSTRUMENT>();

            SqlServerUtility sql = new SqlServerUtility();

            SqlDataReader reader = sql.ExecuteSqlReader(string.Format(Sql_NewestInstrument, count));

            if (reader != null)
            {
                while (reader.Read())
                {
                    Core.Business.view_INSTRUMENT iNSTRUMENT = new Core.Business.view_INSTRUMENT();

                    if (!reader.IsDBNull(0)) iNSTRUMENT.Id = reader.GetGuid(0);
                    if (!reader.IsDBNull(1)) iNSTRUMENT.InstruCode = reader.GetString(1);
                    if (!reader.IsDBNull(2)) iNSTRUMENT.LaboratoryId = reader.GetGuid(2);
                    if (!reader.IsDBNull(3)) iNSTRUMENT.WorkingforUnitId = reader.GetGuid(3);
                    if (!reader.IsDBNull(4)) iNSTRUMENT.MachineGroupId = reader.GetGuid(4);
                    if (!reader.IsDBNull(5)) iNSTRUMENT.PERSONNELID = reader.GetGuid(5);
                    if (!reader.IsDBNull(6)) iNSTRUMENT.HNAME = reader.GetString(6);
                    if (!reader.IsDBNull(7)) iNSTRUMENT.ENAME = reader.GetString(7);
                    if (!reader.IsDBNull(8)) iNSTRUMENT.ALIAS = reader.GetString(8);
                    if (!reader.IsDBNull(9)) iNSTRUMENT.CLASSCODE = reader.GetString(9);
                    if (!reader.IsDBNull(10)) iNSTRUMENT.SITE = reader.GetGuid(10);
                    if (!reader.IsDBNull(11)) iNSTRUMENT.CITY = reader.GetGuid(11);
                    if (!reader.IsDBNull(12)) iNSTRUMENT.SPECTYPE = reader.GetString(12);
                    if (!reader.IsDBNull(13)) iNSTRUMENT.GETMODE = reader.GetGuid(13);
                    if (!reader.IsDBNull(14)) iNSTRUMENT.WorkState = reader.GetInt32(14);
                    if (!reader.IsDBNull(15)) iNSTRUMENT.UseState = reader.GetInt32(15);
                    if (!reader.IsDBNull(16)) iNSTRUMENT.MANUFACTURE = reader.GetString(16);
                    if (!reader.IsDBNull(17)) iNSTRUMENT.COUNTRYCODE = reader.GetGuid(17);
                    if (!reader.IsDBNull(18)) iNSTRUMENT.PRODUCINGAREA = reader.GetString(18);
                    if (!reader.IsDBNull(19)) iNSTRUMENT.PRODUCESORT = reader.GetGuid(19);
                    if (!reader.IsDBNull(20)) iNSTRUMENT.VALUERMB = reader.GetDecimal(20);
                    if (!reader.IsDBNull(21)) iNSTRUMENT.NATIONALPAY = reader.GetDecimal(21);
                    if (!reader.IsDBNull(22)) iNSTRUMENT.BUGETSOURCE = reader.GetGuid(22);
                    if (!reader.IsDBNull(23)) iNSTRUMENT.PRODUCEDATE = reader.GetDateTime(23);
                    if (!reader.IsDBNull(24)) iNSTRUMENT.PURCHASEDATE = reader.GetDateTime(24);
                    if (!reader.IsDBNull(25)) iNSTRUMENT.DISCARDTIME = reader.GetDateTime(25);
                    if (!reader.IsDBNull(26)) iNSTRUMENT.GUIDELINE = reader.GetString(26);
                    if (!reader.IsDBNull(27)) iNSTRUMENT.FUNCTIONFEATURES = reader.GetString(27);
                    if (!reader.IsDBNull(28)) iNSTRUMENT.EXAMINATION = reader.GetGuid(28);
                    if (!reader.IsDBNull(29)) iNSTRUMENT.HasCMA = reader.GetInt32(29);
                    if (!reader.IsDBNull(30)) iNSTRUMENT.IsSpecial = reader.GetInt32(30);
                    if (!reader.IsDBNull(31)) iNSTRUMENT.TOTALLY = reader.GetInt32(31);
                    if (!reader.IsDBNull(32)) iNSTRUMENT.ACCEPTMISSION = reader.GetInt32(32);
                    if (!reader.IsDBNull(33)) iNSTRUMENT.EXTERNALSERVICE = reader.GetInt32(33);
                    if (!reader.IsDBNull(34)) iNSTRUMENT.PICTURE = reader.GetInt32(34);
                    if (!reader.IsDBNull(35)) iNSTRUMENT.ATTACHMENT = reader.GetInt32(35);
                    if (!reader.IsDBNull(36)) iNSTRUMENT.MEDIA = reader.GetInt32(36);
                    if (!reader.IsDBNull(37)) iNSTRUMENT.PURPOSEID = reader.GetString(37);
                    if (!reader.IsDBNull(38)) iNSTRUMENT.REALMID = reader.GetString(38);
                    if (!reader.IsDBNull(39)) iNSTRUMENT.WRITEDATE = reader.GetDateTime(39);
                    if (!reader.IsDBNull(40)) iNSTRUMENT.UPDATEDATE = reader.GetDateTime(40);
                    if (!reader.IsDBNull(41)) iNSTRUMENT.REMARK = reader.GetString(41);
                    if (!reader.IsDBNull(42)) iNSTRUMENT.AUDITINGSTATE = reader.GetInt32(42);
                    if (!reader.IsDBNull(43)) iNSTRUMENT.ASSESSOR = reader.GetString(43);
                    if (!reader.IsDBNull(44)) iNSTRUMENT.AUDITINGDATE = reader.GetDateTime(44);
                    if (!reader.IsDBNull(45)) iNSTRUMENT.RollCall = reader.GetInt64(45);
                    if (!reader.IsDBNull(46)) iNSTRUMENT.OringalId = reader.GetInt32(46);
                    if (!reader.IsDBNull(47)) iNSTRUMENT.Gather = reader.GetInt32(47);
                    iNSTRUMENT.MarkOld();

                    iNSTRUMENTlist.Add(iNSTRUMENT);
                }
                reader.Close();
            }
            return iNSTRUMENTlist;
        }
        public IList<CY.CSTS.Core.Business.view_INSTRUMENT> SubSearchByNameByPage(string Name, int pagenumber, int pagesize, string SubID)
        {
            IList<Core.Business.view_INSTRUMENT> iNSTRUMENTlist = new List<Core.Business.view_INSTRUMENT>();

            SqlServerUtility sql = new SqlServerUtility();
            string sqlwhere = " Where WorkingforUnitId = '" + SubID + "'and (HNAME like '%" + Name + "%' or ENAME like '%" + Name + "%')";
            int lowband = (pagenumber - 1) * pagesize + 1;

            int highband = pagenumber * pagesize + 1;

            sql.AddParameter("@lowband", SqlDbType.Int, lowband);

            sql.AddParameter("@highband", SqlDbType.Int, highband);
            SqlDataReader reader = sql.ExecuteSqlReader(string.Format(Sql_ContentPaged, sqlwhere));

            if (reader != null)
            {
                while (reader.Read())
                {
                    Core.Business.view_INSTRUMENT iNSTRUMENT = new Core.Business.view_INSTRUMENT();

                    if (!reader.IsDBNull(0)) iNSTRUMENT.Id = reader.GetGuid(0);
                    if (!reader.IsDBNull(1)) iNSTRUMENT.InstruCode = reader.GetString(1);
                    if (!reader.IsDBNull(2)) iNSTRUMENT.LaboratoryId = reader.GetGuid(2);
                    if (!reader.IsDBNull(3)) iNSTRUMENT.WorkingforUnitId = reader.GetGuid(3);
                    if (!reader.IsDBNull(4)) iNSTRUMENT.MachineGroupId = reader.GetGuid(4);
                    if (!reader.IsDBNull(5)) iNSTRUMENT.PERSONNELID = reader.GetGuid(5);
                    if (!reader.IsDBNull(6)) iNSTRUMENT.HNAME = reader.GetString(6);
                    if (!reader.IsDBNull(7)) iNSTRUMENT.ENAME = reader.GetString(7);
                    if (!reader.IsDBNull(8)) iNSTRUMENT.ALIAS = reader.GetString(8);
                    if (!reader.IsDBNull(9)) iNSTRUMENT.CLASSCODE = reader.GetString(9);
                    if (!reader.IsDBNull(10)) iNSTRUMENT.SITE = reader.GetGuid(10);
                    if (!reader.IsDBNull(11)) iNSTRUMENT.CITY = reader.GetGuid(11);
                    if (!reader.IsDBNull(12)) iNSTRUMENT.SPECTYPE = reader.GetString(12);
                    if (!reader.IsDBNull(13)) iNSTRUMENT.GETMODE = reader.GetGuid(13);
                    if (!reader.IsDBNull(14)) iNSTRUMENT.WorkState = reader.GetInt32(14);
                    if (!reader.IsDBNull(15)) iNSTRUMENT.UseState = reader.GetInt32(15);
                    if (!reader.IsDBNull(16)) iNSTRUMENT.MANUFACTURE = reader.GetString(16);
                    if (!reader.IsDBNull(17)) iNSTRUMENT.COUNTRYCODE = reader.GetGuid(17);
                    if (!reader.IsDBNull(18)) iNSTRUMENT.PRODUCINGAREA = reader.GetString(18);
                    if (!reader.IsDBNull(19)) iNSTRUMENT.PRODUCESORT = reader.GetGuid(19);
                    if (!reader.IsDBNull(20)) iNSTRUMENT.VALUERMB = reader.GetDecimal(20);
                    if (!reader.IsDBNull(21)) iNSTRUMENT.NATIONALPAY = reader.GetDecimal(21);
                    if (!reader.IsDBNull(22)) iNSTRUMENT.BUGETSOURCE = reader.GetGuid(22);
                    if (!reader.IsDBNull(23)) iNSTRUMENT.PRODUCEDATE = reader.GetDateTime(23);
                    if (!reader.IsDBNull(24)) iNSTRUMENT.PURCHASEDATE = reader.GetDateTime(24);
                    if (!reader.IsDBNull(25)) iNSTRUMENT.DISCARDTIME = reader.GetDateTime(25);
                    if (!reader.IsDBNull(26)) iNSTRUMENT.GUIDELINE = reader.GetString(26);
                    if (!reader.IsDBNull(27)) iNSTRUMENT.FUNCTIONFEATURES = reader.GetString(27);
                    if (!reader.IsDBNull(28)) iNSTRUMENT.EXAMINATION = reader.GetGuid(28);
                    if (!reader.IsDBNull(29)) iNSTRUMENT.HasCMA = reader.GetInt32(29);
                    if (!reader.IsDBNull(30)) iNSTRUMENT.IsSpecial = reader.GetInt32(30);
                    if (!reader.IsDBNull(31)) iNSTRUMENT.TOTALLY = reader.GetInt32(31);
                    if (!reader.IsDBNull(32)) iNSTRUMENT.ACCEPTMISSION = reader.GetInt32(32);
                    if (!reader.IsDBNull(33)) iNSTRUMENT.EXTERNALSERVICE = reader.GetInt32(33);
                    if (!reader.IsDBNull(34)) iNSTRUMENT.PICTURE = reader.GetInt32(34);
                    if (!reader.IsDBNull(35)) iNSTRUMENT.ATTACHMENT = reader.GetInt32(35);
                    if (!reader.IsDBNull(36)) iNSTRUMENT.MEDIA = reader.GetInt32(36);
                    if (!reader.IsDBNull(37)) iNSTRUMENT.PURPOSEID = reader.GetString(37);
                    if (!reader.IsDBNull(38)) iNSTRUMENT.REALMID = reader.GetString(38);
                    if (!reader.IsDBNull(39)) iNSTRUMENT.WRITEDATE = reader.GetDateTime(39);
                    if (!reader.IsDBNull(40)) iNSTRUMENT.UPDATEDATE = reader.GetDateTime(40);
                    if (!reader.IsDBNull(41)) iNSTRUMENT.REMARK = reader.GetString(41);
                    if (!reader.IsDBNull(42)) iNSTRUMENT.AUDITINGSTATE = reader.GetInt32(42);
                    if (!reader.IsDBNull(43)) iNSTRUMENT.ASSESSOR = reader.GetString(43);
                    if (!reader.IsDBNull(44)) iNSTRUMENT.AUDITINGDATE = reader.GetDateTime(44);
                    if (!reader.IsDBNull(45)) iNSTRUMENT.RollCall = reader.GetInt64(45);
                    if (!reader.IsDBNull(46)) iNSTRUMENT.OringalId = reader.GetInt32(46);
                    if (!reader.IsDBNull(47)) iNSTRUMENT.Gather = reader.GetInt32(47);
                    iNSTRUMENT.MarkOld();
                    iNSTRUMENTlist.Add(iNSTRUMENT);
                }
                reader.Close();
            }
            return iNSTRUMENTlist;
        }
        public IEnumerable<view_INSTRUMENT> SelectReportInstrumentByPage(
            string whereCondition,
            string orderExpression,
            CY.CSTS.Core.Business.PagingInfo pageinfo)
        {
            try
            {
                IList<Core.Business.view_INSTRUMENT> iNSTRUMENTlist = new List<Core.Business.view_INSTRUMENT>();
                SqlServerUtility sql = new SqlServerUtility();

                int lowBand = (pageinfo.CurrentPage - 1) * pageinfo.PageSize;

                int highBand = pageinfo.CurrentPage * pageinfo.PageSize;

                string strSql = string.Format(Sql_SelectReportInstrumentByPage, orderExpression, whereCondition, lowBand, highBand);

                SqlDataReader reader = sql.ExecuteSqlReader(strSql);

                if (reader != null)
                {
                    while (reader.Read())
                    {
                        Core.Business.view_INSTRUMENT iNSTRUMENT = new Core.Business.view_INSTRUMENT();

                        if (!reader.IsDBNull(0)) iNSTRUMENT.Id = reader.GetGuid(0);
                        if (!reader.IsDBNull(1)) iNSTRUMENT.InstruCode = reader.GetString(1);
                        if (!reader.IsDBNull(2)) iNSTRUMENT.LaboratoryId = reader.GetGuid(2);
                        if (!reader.IsDBNull(3)) iNSTRUMENT.WorkingforUnitId = reader.GetGuid(3);
                        if (!reader.IsDBNull(4)) iNSTRUMENT.MachineGroupId = reader.GetGuid(4);
                        if (!reader.IsDBNull(5)) iNSTRUMENT.PERSONNELID = reader.GetGuid(5);
                        if (!reader.IsDBNull(6)) iNSTRUMENT.HNAME = reader.GetString(6);
                        if (!reader.IsDBNull(7)) iNSTRUMENT.ENAME = reader.GetString(7);
                        if (!reader.IsDBNull(8)) iNSTRUMENT.ALIAS = reader.GetString(8);
                        if (!reader.IsDBNull(9)) iNSTRUMENT.CLASSCODE = reader.GetString(9);
                        if (!reader.IsDBNull(10)) iNSTRUMENT.SITE = reader.GetGuid(10);
                        if (!reader.IsDBNull(11)) iNSTRUMENT.CITY = reader.GetGuid(11);
                        if (!reader.IsDBNull(12)) iNSTRUMENT.SPECTYPE = reader.GetString(12);
                        if (!reader.IsDBNull(13)) iNSTRUMENT.GETMODE = reader.GetGuid(13);
                        if (!reader.IsDBNull(14)) iNSTRUMENT.WorkState = reader.GetInt32(14);
                        if (!reader.IsDBNull(15)) iNSTRUMENT.UseState = reader.GetInt32(15);
                        if (!reader.IsDBNull(16)) iNSTRUMENT.MANUFACTURE = reader.GetString(16);
                        if (!reader.IsDBNull(17)) iNSTRUMENT.COUNTRYCODE = reader.GetGuid(17);
                        if (!reader.IsDBNull(18)) iNSTRUMENT.PRODUCINGAREA = reader.GetString(18);
                        if (!reader.IsDBNull(19)) iNSTRUMENT.PRODUCESORT = reader.GetGuid(19);
                        if (!reader.IsDBNull(20)) iNSTRUMENT.VALUERMB = reader.GetDecimal(20);
                        if (!reader.IsDBNull(21)) iNSTRUMENT.NATIONALPAY = reader.GetDecimal(21);
                        if (!reader.IsDBNull(22)) iNSTRUMENT.BUGETSOURCE = reader.GetGuid(22);
                        if (!reader.IsDBNull(23)) iNSTRUMENT.PRODUCEDATE = reader.GetDateTime(23);
                        if (!reader.IsDBNull(24)) iNSTRUMENT.PURCHASEDATE = reader.GetDateTime(24);
                        if (!reader.IsDBNull(25)) iNSTRUMENT.DISCARDTIME = reader.GetDateTime(25);
                        if (!reader.IsDBNull(26)) iNSTRUMENT.GUIDELINE = reader.GetString(26);
                        if (!reader.IsDBNull(27)) iNSTRUMENT.FUNCTIONFEATURES = reader.GetString(27);
                        if (!reader.IsDBNull(28)) iNSTRUMENT.EXAMINATION = reader.GetGuid(28);
                        if (!reader.IsDBNull(29)) iNSTRUMENT.HasCMA = reader.GetInt32(29);
                        if (!reader.IsDBNull(30)) iNSTRUMENT.IsSpecial = reader.GetInt32(30);
                        if (!reader.IsDBNull(31)) iNSTRUMENT.TOTALLY = reader.GetInt32(31);
                        if (!reader.IsDBNull(32)) iNSTRUMENT.ACCEPTMISSION = reader.GetInt32(32);
                        if (!reader.IsDBNull(33)) iNSTRUMENT.EXTERNALSERVICE = reader.GetInt32(33);
                        if (!reader.IsDBNull(34)) iNSTRUMENT.PICTURE = reader.GetInt32(34);
                        if (!reader.IsDBNull(35)) iNSTRUMENT.ATTACHMENT = reader.GetInt32(35);
                        if (!reader.IsDBNull(36)) iNSTRUMENT.MEDIA = reader.GetInt32(36);
                        if (!reader.IsDBNull(37)) iNSTRUMENT.PURPOSEID = reader.GetString(37);
                        if (!reader.IsDBNull(38)) iNSTRUMENT.REALMID = reader.GetString(38);
                        if (!reader.IsDBNull(39)) iNSTRUMENT.WRITEDATE = reader.GetDateTime(39);
                        if (!reader.IsDBNull(40)) iNSTRUMENT.UPDATEDATE = reader.GetDateTime(40);
                        if (!reader.IsDBNull(41)) iNSTRUMENT.REMARK = reader.GetString(41);
                        if (!reader.IsDBNull(42)) iNSTRUMENT.AUDITINGSTATE = reader.GetInt32(42);
                        if (!reader.IsDBNull(43)) iNSTRUMENT.ASSESSOR = reader.GetString(43);
                        if (!reader.IsDBNull(44)) iNSTRUMENT.AUDITINGDATE = reader.GetDateTime(44);
                        if (!reader.IsDBNull(46)) iNSTRUMENT.OringalId = reader.GetInt32(46);

                        iNSTRUMENT.MarkOld();

                        iNSTRUMENTlist.Add(iNSTRUMENT);
                    }

                    reader.Close();
                }
                return iNSTRUMENTlist;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public IEnumerable<view_INSTRUMENT> SelectInstrumentUnPaged(
            List<int> cate,
            string code,
            string ename,
            int? ismission,
            int? isservice,
            int? isshare,
            int? isspecify,
            string name,
            List<Guid> unit,
            int? usestate,
            int? wordstate,
            List<int> years,
            List<int> states,
            List<string> tags,
            List<string> sort,
            string SPECTYPE,
            decimal? lowerValue,
            decimal? highValue,
            string MANUFACTURE,
            Guid? COUNTRYCODE,
            string PRODUCINGAREA,
            string FUNCTIONFEATURES,
            string ALIAS,
            int? HasCMA
            )
        {
            StringBuilder sbFilter = new StringBuilder();

            StringBuilder sbOrderExpression = new StringBuilder();

            sbFilter.Append(" 1=1 ");

            if (cate != null && cate.Count > 0)
            {

                foreach (int c in cate)
                {
                    bool isFirst = true;
                    sbFilter.Append(" AND (");
                    if (isFirst)
                    {
                        sbFilter.Append(string.Format(" ClassCode={0} ", c));
                    }
                    else
                    {
                        sbFilter.Append(string.Format(" OR ClassCode='{0}'", c));
                    }
                    sbFilter.Append(")");
                }
            }

            if (!string.IsNullOrEmpty(code))
            {
                sbFilter.Append(" AND InstruCode like '%");
                sbFilter.Append(CY.Utility.Common.StringUtility.RemoveIllegalCharacters(code));
                sbFilter.Append("%'");
            }

            if (!string.IsNullOrEmpty(ename))
            {
                sbFilter.Append(" AND EName like '%");
                sbFilter.Append(CY.Utility.Common.StringUtility.RemoveIllegalCharacters(ename));
                sbFilter.Append("%'");
            }

            if (!string.IsNullOrEmpty(name))
            {
                sbFilter.Append(" AND HName like '%");
                sbFilter.Append(CY.Utility.Common.StringUtility.RemoveIllegalCharacters(name));
                sbFilter.Append("%'");
            }

            if (isspecify != null)
            {
                sbFilter.Append(string.Format(" AND IsSpecial={0}", isspecify.Value));
            }

            if (isservice != null)
            {
                sbFilter.Append(string.Format(" AND EXTERNALSERVICE={0}", isservice.Value));
            }

            if (isshare != null)
            {
                sbFilter.Append(string.Format(" AND TOTALLY={0}", isshare.Value));
            }

            if (ismission != null)
            {
                sbFilter.Append(string.Format(" AND ACCEPTMISSION={0}", ismission.Value));
            }

            if (unit != null && unit.Count > 0)
            {
                sbFilter.Append(" AND ");
                sbFilter.Append("(");
                bool isFirst = true;
                foreach (Guid u in unit)
                {
                    if (isFirst)
                    {
                        isFirst = false;
                        sbFilter.Append(string.Format(" WorkingforUnitId='{0}'", u));

                    }
                    else
                    {
                        sbFilter.Append(string.Format(" Or WorkingforUnitId='{0}'", u));
                    }
                }
                sbFilter.Append(")");
            }

            if (usestate != null)
            {
                sbFilter.Append(string.Format(" AND UseState={0}", usestate.Value));
            }

            if (wordstate != null)
            {
                sbFilter.Append(string.Format(" AND WorkState={0}", wordstate.Value));
            }

            if (years != null && years.Count > 0)
            {
                sbFilter.Append(" AND ");
                sbFilter.Append("(");
                bool isFirst = true;
                foreach (int y in years)
                {
                    if (isFirst)
                    {
                        isFirst = false;

                        sbFilter.Append(string.Format(" DatePart(year,AUDITINGDATE) ='{0}'", y));
                    }
                    else
                    {
                        sbFilter.Append(string.Format(" Or DatePart(year,AUDITINGDATE)='{0}'", y));
                    }
                }

                sbFilter.Append(")");
            }

            /*新增(简单搜索)*/

            if (!string.IsNullOrEmpty(SPECTYPE))
            {
                sbFilter.Append(" AND SPECTYPE like '%" + SPECTYPE + "%' ");
            }

            if (lowerValue != null)
            {
                sbFilter.Append(" AND VALUERMB>=" + lowerValue + " ");
            }
            if (highValue != null && highValue != 0)
            {
                sbFilter.Append(" AND VALUERMB<=" + highValue + " ");
            }

            /*新增(复合搜索)*/
            if (!string.IsNullOrEmpty(MANUFACTURE))
            {
                sbFilter.Append(" AND MANUFACTURE like '%" + MANUFACTURE + "%' ");
            }
            if (COUNTRYCODE != null && COUNTRYCODE.Value != Guid.Empty)
            {
                sbFilter.Append(" AND COUNTRYCODE='" + COUNTRYCODE.Value + "' ");
            }
            if (!string.IsNullOrEmpty(PRODUCINGAREA))
            {
                sbFilter.Append(" AND PRODUCINGAREA like '%" + PRODUCINGAREA + "%' ");
            }
            if (!string.IsNullOrEmpty(FUNCTIONFEATURES))
            {
                sbFilter.Append(" AND FUNCTIONFEATURES like '%" + FUNCTIONFEATURES + "%' ");
            }
            if (!string.IsNullOrEmpty(ALIAS))
            {
                sbFilter.Append(" AND ALIAS like '%" + ALIAS + "%' ");
            }
            if (HasCMA != null)
            {
                sbFilter.Append(" AND HasCMA=" + HasCMA + "");
            }
            /***************************************/

            if (states != null && states.Count > 0)
            {
                sbFilter.Append(" AND (");
                bool isFirst = true;
                foreach (int state in states)
                {
                    if (isFirst)
                    {
                        isFirst = false;
                        sbFilter.Append(string.Format(" AUDITINGSTATE={0} ", state));
                    }
                    else
                    {
                        sbFilter.Append(string.Format(" Or AUDITINGSTATE={0}", state));
                    }
                }
                sbFilter.Append(")");
            }

            if (sort != null && sort.Count > 0)
            {

                bool isFirst = true;
                foreach (string s in sort)
                {
                    if (isFirst)
                    {
                        isFirst = false;
                        sbOrderExpression.Append(string.Format(string.Format(" Order by {0}", s)));
                    }
                    else
                    {
                        sbOrderExpression.Append(string.Format(string.Format(",{0}", s)));
                    }
                }
            }

            /*******************************/

            // 暂时不对tag 做操作

            /******************************/

            string strSql = string.Format(Sql_Instrument_UnPage, sbFilter.ToString(), sbOrderExpression.ToString());

            List<Core.Business.view_INSTRUMENT> iNSTRUMENTlist = new List<Core.Business.view_INSTRUMENT>();

            SqlServerUtility sql = new SqlServerUtility();

            SqlDataReader reader = sql.ExecuteSqlReader(strSql);

            if (reader != null)
            {
                while (reader.Read())
                {
                    Core.Business.view_INSTRUMENT iNSTRUMENT = new Core.Business.view_INSTRUMENT();

                    if (!reader.IsDBNull(0)) iNSTRUMENT.Id = reader.GetGuid(0);
                    if (!reader.IsDBNull(1)) iNSTRUMENT.InstruCode = reader.GetString(1);
                    if (!reader.IsDBNull(2)) iNSTRUMENT.LaboratoryId = reader.GetGuid(2);
                    if (!reader.IsDBNull(3)) iNSTRUMENT.WorkingforUnitId = reader.GetGuid(3);
                    if (!reader.IsDBNull(4)) iNSTRUMENT.MachineGroupId = reader.GetGuid(4);
                    if (!reader.IsDBNull(5)) iNSTRUMENT.PERSONNELID = reader.GetGuid(5);
                    if (!reader.IsDBNull(6)) iNSTRUMENT.HNAME = reader.GetString(6);
                    if (!reader.IsDBNull(7)) iNSTRUMENT.ENAME = reader.GetString(7);
                    if (!reader.IsDBNull(8)) iNSTRUMENT.ALIAS = reader.GetString(8);
                    if (!reader.IsDBNull(9)) iNSTRUMENT.CLASSCODE = reader.GetString(9);
                    if (!reader.IsDBNull(10)) iNSTRUMENT.SITE = reader.GetGuid(10);
                    if (!reader.IsDBNull(11)) iNSTRUMENT.CITY = reader.GetGuid(11);
                    if (!reader.IsDBNull(12)) iNSTRUMENT.SPECTYPE = reader.GetString(12);
                    if (!reader.IsDBNull(13)) iNSTRUMENT.GETMODE = reader.GetGuid(13);
                    if (!reader.IsDBNull(14)) iNSTRUMENT.WorkState = reader.GetInt32(14);
                    if (!reader.IsDBNull(15)) iNSTRUMENT.UseState = reader.GetInt32(15);
                    if (!reader.IsDBNull(16)) iNSTRUMENT.MANUFACTURE = reader.GetString(16);
                    if (!reader.IsDBNull(17)) iNSTRUMENT.COUNTRYCODE = reader.GetGuid(17);
                    if (!reader.IsDBNull(18)) iNSTRUMENT.PRODUCINGAREA = reader.GetString(18);
                    if (!reader.IsDBNull(19)) iNSTRUMENT.PRODUCESORT = reader.GetGuid(19);
                    if (!reader.IsDBNull(20)) iNSTRUMENT.VALUERMB = reader.GetDecimal(20);
                    if (!reader.IsDBNull(21)) iNSTRUMENT.NATIONALPAY = reader.GetDecimal(21);
                    if (!reader.IsDBNull(22)) iNSTRUMENT.BUGETSOURCE = reader.GetGuid(22);
                    if (!reader.IsDBNull(23)) iNSTRUMENT.PRODUCEDATE = reader.GetDateTime(23);
                    if (!reader.IsDBNull(24)) iNSTRUMENT.PURCHASEDATE = reader.GetDateTime(24);
                    if (!reader.IsDBNull(25)) iNSTRUMENT.DISCARDTIME = reader.GetDateTime(25);
                    if (!reader.IsDBNull(26)) iNSTRUMENT.GUIDELINE = reader.GetString(26);
                    if (!reader.IsDBNull(27)) iNSTRUMENT.FUNCTIONFEATURES = reader.GetString(27);
                    if (!reader.IsDBNull(28)) iNSTRUMENT.EXAMINATION = reader.GetGuid(28);
                    if (!reader.IsDBNull(29)) iNSTRUMENT.HasCMA = reader.GetInt32(29);
                    if (!reader.IsDBNull(30)) iNSTRUMENT.IsSpecial = reader.GetInt32(30);
                    if (!reader.IsDBNull(31)) iNSTRUMENT.TOTALLY = reader.GetInt32(31);
                    if (!reader.IsDBNull(32)) iNSTRUMENT.ACCEPTMISSION = reader.GetInt32(32);
                    if (!reader.IsDBNull(33)) iNSTRUMENT.EXTERNALSERVICE = reader.GetInt32(33);
                    if (!reader.IsDBNull(34)) iNSTRUMENT.PICTURE = reader.GetInt32(34);
                    if (!reader.IsDBNull(35)) iNSTRUMENT.ATTACHMENT = reader.GetInt32(35);
                    if (!reader.IsDBNull(36)) iNSTRUMENT.MEDIA = reader.GetInt32(36);
                    if (!reader.IsDBNull(37)) iNSTRUMENT.PURPOSEID = reader.GetString(37);
                    if (!reader.IsDBNull(38)) iNSTRUMENT.REALMID = reader.GetString(38);
                    if (!reader.IsDBNull(39)) iNSTRUMENT.WRITEDATE = reader.GetDateTime(39);
                    if (!reader.IsDBNull(40)) iNSTRUMENT.UPDATEDATE = reader.GetDateTime(40);
                    if (!reader.IsDBNull(41)) iNSTRUMENT.REMARK = reader.GetString(41);
                    if (!reader.IsDBNull(42)) iNSTRUMENT.AUDITINGSTATE = reader.GetInt32(42);
                    if (!reader.IsDBNull(43)) iNSTRUMENT.ASSESSOR = reader.GetString(43);
                    if (!reader.IsDBNull(44)) iNSTRUMENT.AUDITINGDATE = reader.GetDateTime(44);
                    if (!reader.IsDBNull(45)) iNSTRUMENT.RollCall = reader.GetInt64(45);
                    if (!reader.IsDBNull(46)) iNSTRUMENT.OringalId = reader.GetInt32(46);
                    if (!reader.IsDBNull(47)) iNSTRUMENT.Gather = reader.GetInt32(47);
                    iNSTRUMENT.MarkOld();

                    iNSTRUMENTlist.Add(iNSTRUMENT);
                }
                reader.Close();
            }
            return iNSTRUMENTlist;
        }
        public IEnumerable<view_INSTRUMENT> SelectInstrumentPaged(
            int? cate,
            List<int> cates,
            string code,
            string ename,
            int? ismission,
            int? isservice,
            int? isshare,
            int? isspecify,
            string name,
            Guid? unit,
            List<Guid> units,
            int? usestate,
            int? wordstate,
            int? year,
            List<int> states,
            List<string> tags,
            List<string> sort,
            string SPECTYPE,
            decimal? lowerValue,
            decimal? highValue,
            int? currentpage,
            int? pagesize,
            string MANUFACTURE,
            Guid? COUNTRYCODE,
            string PRODUCINGAREA,
            string FUNCTIONFEATURES,
            string ALIAS,
            int? HasCMA,
            DateTime? auditDate,
            CY.CSTS.Core.Business.InstrumentSearchJson json
            
            )
        {
            StringBuilder sbFilter = new StringBuilder();

            StringBuilder sbOrderExpression = new StringBuilder();

            sbFilter.Append(" 1=1 ");

            if (cate != null)
            {
                CY.CSTS.Core.Business.CLASSCODE now = CY.CSTS.Core.Business.CLASSCODE.Load(cate.Value);
                if (now != null)
                {
                    sbFilter.Append(" AND ");

                    sbFilter.Append("(");

                    sbFilter.Append(string.Format("CHARINDEX('{0}',ClassCode.RootPath)>0 ", now.RootPath));

                    sbFilter.Append(")");
                }
            }

            if (!string.IsNullOrEmpty(code))
            {
                sbFilter.Append(string.Format(" AND InstruCode ='{0}'", CY.Utility.Common.StringUtility.RemoveIllegalCharacters(code)));

            }

            if (!string.IsNullOrEmpty(ename))
            {
                sbFilter.Append(" AND EName like '%");
                sbFilter.Append(CY.Utility.Common.StringUtility.RemoveIllegalCharacters(ename));
                sbFilter.Append("%'");
            }

            if (!string.IsNullOrEmpty(name))
            {
                sbFilter.Append(" AND HName like '%");
                sbFilter.Append(CY.Utility.Common.StringUtility.RemoveIllegalCharacters(name));
                sbFilter.Append("%'");
            }

            if (isspecify != null)
            {
                sbFilter.Append(string.Format(" AND IsSpecial={0}", isspecify.Value));
            }

            if (isservice != null)
            {
                sbFilter.Append(string.Format(" AND EXTERNALSERVICE={0}", isservice.Value));
            }

            if (isshare != null)
            {
                sbFilter.Append(string.Format(" AND TOTALLY={0}", isshare.Value));
            }

            if (ismission != null)
            {
                sbFilter.Append(string.Format(" AND ACCEPTMISSION={0}", ismission.Value));
            }

            if (unit != null)
            {
                sbFilter.Append(string.Format(" AND WorkingforUnitId='{0}'", unit));
            }

            if (units != null && units.Count > 0)
            {
                sbFilter.Append(" AND ");
                sbFilter.Append("(");
                bool isFirst = true;
                foreach (Guid u in units)
                {
                    if (isFirst)
                    {
                        isFirst = false;
                        sbFilter.Append(string.Format(" WorkingforUnitId= '{0}'", u.ToString()));
                    }
                    else
                    {
                        sbFilter.Append(string.Format(" Or WorkingforUnitId= '{0}'", u.ToString()));
                    }
                }
                sbFilter.Append(")");
            }

            if (usestate != null)
            {
                sbFilter.Append(string.Format(" AND UseState={0}", usestate.Value));
            }

            if (wordstate != null)
            {
                sbFilter.Append(string.Format(" AND WorkState={0}", wordstate.Value));
            }

            if (year != null)
            {
                sbFilter.Append(string.Format(" AND DatePart(year,PURCHASEDATE) ='{0}'", year.Value));
            }

            /*新增(简单搜索)*/
            if (!string.IsNullOrEmpty(SPECTYPE))
            {
                sbFilter.Append(" AND SPECTYPE like '%" + SPECTYPE + "%' ");
            }

            if (lowerValue != null)
            {
                sbFilter.Append(" AND VALUERMB>=" + lowerValue + " ");
            }
            if (highValue != null && highValue != 0)
            {
                sbFilter.Append(" AND VALUERMB<=" + highValue + " ");
            }

            /*新增(复合搜索)*/
            if (!string.IsNullOrEmpty(MANUFACTURE))
            {
                sbFilter.Append(" AND MANUFACTURE like '%" + MANUFACTURE + "%' ");
            }
            if (COUNTRYCODE.HasValue && COUNTRYCODE != Guid.Empty)
            {
                sbFilter.Append(" AND COUNTRYCODE='" + COUNTRYCODE + "' ");
            }
            if (!string.IsNullOrEmpty(PRODUCINGAREA))
            {
                sbFilter.Append(" AND PRODUCINGAREA like '%" + PRODUCINGAREA + "%' ");
            }
            if (!string.IsNullOrEmpty(FUNCTIONFEATURES))
            {
                sbFilter.Append(" AND FUNCTIONFEATURES like '%" + FUNCTIONFEATURES + "%' ");
            }
            if (!string.IsNullOrEmpty(ALIAS))
            {
                sbFilter.Append(" AND ALIAS like '%" + ALIAS + "%' ");
            }
            if (HasCMA != null)
            {
                sbFilter.Append(" AND HasCMA=" + HasCMA + "");
            }
            /***************************************/

            if (states != null && states.Count > 0)
            {
                sbFilter.Append(" AND (");
                bool isFirst = true;
                foreach (int state in states)
                {
                    if (isFirst)
                    {
                        isFirst = false;
                        sbFilter.Append(string.Format(" tagInstrument.AUDITINGSTATE={0} ", state));
                    }
                    else
                    {
                        sbFilter.Append(string.Format(" Or tagInstrument.AUDITINGSTATE={0}", state));
                    }
                }
                sbFilter.Append(")");
            }

            if (sort != null && sort.Count > 0)
            {

                bool isFirst = true;
                foreach (string s in sort)
                {
                    if (isFirst)
                    {
                        isFirst = false;
                        sbOrderExpression.Append(string.Format(string.Format(" tagInstrument.{0} desc", s)));
                    }
                    else
                    {
                        sbOrderExpression.Append(string.Format(string.Format(",tagInstrument.{0} desc ", s)));
                    }
                }
            }

            /************* Tag 搜索******************/

            if (tags != null && tags.Count > 0)
            {
                sbFilter.Append(" and ");
                sbFilter.Append("( ");
                bool isFirst = true;
                foreach (string t in tags)
                {
                    if (isFirst)
                    {
                        isFirst = false;
                        sbFilter.Append(string.Format(" tag like '%{0}%'", CY.Utility.Common.StringUtility.RemoveIllegalCharacters(t).Replace("\"", "").Replace("'", "")));
                    }
                    else
                    {
                        sbFilter.Append(string.Format(" or tag like '%{0}%'", CY.Utility.Common.StringUtility.RemoveIllegalCharacters(t).Replace("\"", "").Replace("'", "")));
                    }
                }
                sbFilter.Append(")");
            }

            /*************Auditing Date***************/
            if (auditDate != null && auditDate.Value > DateTime.MinValue)
            {
                sbFilter.Append(" AND tagInstrument.AuditingDate >='" + auditDate.Value.ToString() + "'");
            }

            DateTime endDate = DateTime.MinValue;
            if (json.auditEndDate != null && CY.Utility.Common.ParseUtility.TryParseDateTime(json.auditEndDate, out endDate))
            {
                sbFilter.Append(" AND tagInstrument.AuditingDate <= '" + endDate.ToString() + "'");
            }

            if (json.unitflag == 1 || json.unitflag == 2)
            {
                sbFilter.Append(string.Format(" AND unitinfo.IsCooperantUnit={0}", json.unitflag));
            }

            if (json.unittype != Guid.Empty)
            {
                sbFilter.Append(string.Format(" AND unittype='{0}'", json.unittype));
            }

            if (json.isGather != -1 && (json.isGather == 1 || json.isGather == 0))
            {
                sbFilter.Append(string.Format(" AND Gather={0}", json.isGather));
            }

            if (json.UnitBuildCode > 0)
            {
                sbFilter.Append(string.Format(" AND  instrument ={0}", json.UnitBuildCode));
            }

            if (!string.IsNullOrEmpty(json.UnitName))
            {
                sbFilter.Append(string.Format(" AND unitinfo.UnitName like '%{0}%' and unitInfo.auditingstate= 2", json.UnitName));
            }

            /******************************/

            int lowerband = default(int);

            int upperband = default(int);

            if (currentpage != null && pagesize != null)
            {
                lowerband = (currentpage.Value - 1) * pagesize.Value;

                upperband = currentpage.Value * pagesize.Value;
            }

            string strSql = string.Format(Sql_Instrument_Paged, sbFilter.ToString(), !string.IsNullOrEmpty(sbOrderExpression.ToString()) ? sbOrderExpression.ToString() : " AuditingState desc ");

            #region Data

            List<Core.Business.view_INSTRUMENT> iNSTRUMENTlist = new List<Core.Business.view_INSTRUMENT>();

            SqlServerUtility sql = new SqlServerUtility();

            sql.AddParameter("@LowerBand", SqlDbType.Int, lowerband);

            sql.AddParameter("@UpperBand", SqlDbType.Int, upperband);

            SqlDataReader reader = sql.ExecuteSqlReader(strSql);

            if (reader != null)
            {
                while (reader.Read())
                {
                    Core.Business.view_INSTRUMENT iNSTRUMENT = new Core.Business.view_INSTRUMENT();

                    if (!reader.IsDBNull(0)) iNSTRUMENT.Id = reader.GetGuid(0);
                    /// 单位之间变化
                    if (!reader.IsDBNull(1)) iNSTRUMENT.InstruCode = reader.GetString(1);
                    if (!reader.IsDBNull(2)) iNSTRUMENT.LaboratoryId = reader.GetGuid(2);
                    if (!reader.IsDBNull(3)) iNSTRUMENT.WorkingforUnitId = reader.GetGuid(3);
                    if (!reader.IsDBNull(4)) iNSTRUMENT.MachineGroupId = reader.GetGuid(4);
                    if (!reader.IsDBNull(5)) iNSTRUMENT.PERSONNELID = reader.GetGuid(5);
                    if (!reader.IsDBNull(6)) iNSTRUMENT.HNAME = reader.GetString(6);
                    if (!reader.IsDBNull(7)) iNSTRUMENT.ENAME = reader.GetString(7);
                    if (!reader.IsDBNull(8)) iNSTRUMENT.ALIAS = reader.GetString(8);
                    if (!reader.IsDBNull(9)) iNSTRUMENT.CLASSCODE = reader.GetString(9);
                    if (!reader.IsDBNull(10)) iNSTRUMENT.SITE = reader.GetGuid(10);
                    if (!reader.IsDBNull(11)) iNSTRUMENT.CITY = reader.GetGuid(11);
                    if (!reader.IsDBNull(12)) iNSTRUMENT.SPECTYPE = reader.GetString(12);
                    if (!reader.IsDBNull(13)) iNSTRUMENT.GETMODE = reader.GetGuid(13);
                    if (!reader.IsDBNull(14)) iNSTRUMENT.WorkState = reader.GetInt32(14);
                    if (!reader.IsDBNull(15)) iNSTRUMENT.UseState = reader.GetInt32(15);
                    if (!reader.IsDBNull(16)) iNSTRUMENT.MANUFACTURE = reader.GetString(16);
                    if (!reader.IsDBNull(17)) iNSTRUMENT.COUNTRYCODE = reader.GetGuid(17);
                    if (!reader.IsDBNull(18)) iNSTRUMENT.PRODUCINGAREA = reader.GetString(18);
                    if (!reader.IsDBNull(19)) iNSTRUMENT.PRODUCESORT = reader.GetGuid(19);
                    if (!reader.IsDBNull(20)) iNSTRUMENT.VALUERMB = reader.GetDecimal(20);
                    if (!reader.IsDBNull(21)) iNSTRUMENT.NATIONALPAY = reader.GetDecimal(21);
                    if (!reader.IsDBNull(22)) iNSTRUMENT.BUGETSOURCE = reader.GetGuid(22);
                    if (!reader.IsDBNull(23)) iNSTRUMENT.PRODUCEDATE = reader.GetDateTime(23);
                    if (!reader.IsDBNull(24)) iNSTRUMENT.PURCHASEDATE = reader.GetDateTime(24);
                    if (!reader.IsDBNull(25)) iNSTRUMENT.DISCARDTIME = reader.GetDateTime(25);
                    if (!reader.IsDBNull(26)) iNSTRUMENT.GUIDELINE = reader.GetString(26);
                    if (!reader.IsDBNull(27)) iNSTRUMENT.FUNCTIONFEATURES = reader.GetString(27);
                    if (!reader.IsDBNull(28)) iNSTRUMENT.EXAMINATION = reader.GetGuid(28);
                    if (!reader.IsDBNull(29)) iNSTRUMENT.HasCMA = reader.GetInt32(29);
                    if (!reader.IsDBNull(30)) iNSTRUMENT.IsSpecial = reader.GetInt32(30);
                    if (!reader.IsDBNull(31)) iNSTRUMENT.TOTALLY = reader.GetInt32(31);
                    if (!reader.IsDBNull(32)) iNSTRUMENT.ACCEPTMISSION = reader.GetInt32(32);
                    if (!reader.IsDBNull(33)) iNSTRUMENT.EXTERNALSERVICE = reader.GetInt32(33);
                    if (!reader.IsDBNull(34)) iNSTRUMENT.PICTURE = reader.GetInt32(34);
                    if (!reader.IsDBNull(35)) iNSTRUMENT.ATTACHMENT = reader.GetInt32(35);
                    if (!reader.IsDBNull(36)) iNSTRUMENT.MEDIA = reader.GetInt32(36);
                    if (!reader.IsDBNull(37)) iNSTRUMENT.PURPOSEID = reader.GetString(37);
                    if (!reader.IsDBNull(38)) iNSTRUMENT.REALMID = reader.GetString(38);
                    if (!reader.IsDBNull(39)) iNSTRUMENT.WRITEDATE = reader.GetDateTime(39);
                    if (!reader.IsDBNull(40)) iNSTRUMENT.UPDATEDATE = reader.GetDateTime(40);
                    if (!reader.IsDBNull(41)) iNSTRUMENT.REMARK = reader.GetString(41);
                    if (!reader.IsDBNull(42)) iNSTRUMENT.AUDITINGSTATE = reader.GetInt32(42);
                    if (!reader.IsDBNull(43)) iNSTRUMENT.ASSESSOR = reader.GetString(43);
                    if (!reader.IsDBNull(44)) iNSTRUMENT.AUDITINGDATE = reader.GetDateTime(44);
                    if (!reader.IsDBNull(45)) iNSTRUMENT.RollCall = reader.GetInt64(45);
                    //  系统自建编号
                    if (!reader.IsDBNull(46)) iNSTRUMENT.OringalId = reader.GetInt32(46);
                    if (!reader.IsDBNull(47)) iNSTRUMENT.Gather = reader.GetInt32(47);

                    iNSTRUMENT.MarkOld();
                    iNSTRUMENTlist.Add(iNSTRUMENT);
                }
                reader.Close();
            }
            return iNSTRUMENTlist;
            #endregion
        }
        public List<view_INSTRUMENT> SelectInstrumentByDynamic(string wherecondition, string orderexperssion)
        {
            List<Core.Business.view_INSTRUMENT> iNSTRUMENTlist = new List<Core.Business.view_INSTRUMENT>();

            SqlServerUtility sql = new SqlServerUtility();

            sql.AddParameter("@WhereCondition", SqlDbType.NVarChar, wherecondition);

            sql.AddParameter("@OrderByExpression", SqlDbType.NVarChar, orderexperssion);

            SqlDataReader reader = sql.ExecuteSPReader("usp_SelectInstrumentByDynamic");

            if (reader != null)
            {
                while (reader.Read())
                {
                    Core.Business.view_INSTRUMENT iNSTRUMENT = new Core.Business.view_INSTRUMENT();

                    if (!reader.IsDBNull(0)) iNSTRUMENT.Id = reader.GetGuid(0);
                    if (!reader.IsDBNull(1)) iNSTRUMENT.InstruCode = reader.GetString(1);
                    if (!reader.IsDBNull(2)) iNSTRUMENT.LaboratoryId = reader.GetGuid(2);
                    if (!reader.IsDBNull(3)) iNSTRUMENT.WorkingforUnitId = reader.GetGuid(3);
                    if (!reader.IsDBNull(4)) iNSTRUMENT.MachineGroupId = reader.GetGuid(4);
                    if (!reader.IsDBNull(5)) iNSTRUMENT.PERSONNELID = reader.GetGuid(5);
                    if (!reader.IsDBNull(6)) iNSTRUMENT.HNAME = reader.GetString(6);
                    if (!reader.IsDBNull(7)) iNSTRUMENT.ENAME = reader.GetString(7);
                    if (!reader.IsDBNull(8)) iNSTRUMENT.ALIAS = reader.GetString(8);
                    if (!reader.IsDBNull(9)) iNSTRUMENT.CLASSCODE = reader.GetString(9);
                    if (!reader.IsDBNull(10)) iNSTRUMENT.SITE = reader.GetGuid(10);
                    if (!reader.IsDBNull(11)) iNSTRUMENT.CITY = reader.GetGuid(11);
                    if (!reader.IsDBNull(12)) iNSTRUMENT.SPECTYPE = reader.GetString(12);
                    if (!reader.IsDBNull(13)) iNSTRUMENT.GETMODE = reader.GetGuid(13);
                    if (!reader.IsDBNull(14)) iNSTRUMENT.WorkState = reader.GetInt32(14);
                    if (!reader.IsDBNull(15)) iNSTRUMENT.UseState = reader.GetInt32(15);
                    if (!reader.IsDBNull(16)) iNSTRUMENT.MANUFACTURE = reader.GetString(16);
                    if (!reader.IsDBNull(17)) iNSTRUMENT.COUNTRYCODE = reader.GetGuid(17);
                    if (!reader.IsDBNull(18)) iNSTRUMENT.PRODUCINGAREA = reader.GetString(18);
                    if (!reader.IsDBNull(19)) iNSTRUMENT.PRODUCESORT = reader.GetGuid(19);
                    if (!reader.IsDBNull(20)) iNSTRUMENT.VALUERMB = reader.GetDecimal(20);
                    if (!reader.IsDBNull(21)) iNSTRUMENT.NATIONALPAY = reader.GetDecimal(21);
                    if (!reader.IsDBNull(22)) iNSTRUMENT.BUGETSOURCE = reader.GetGuid(22);
                    if (!reader.IsDBNull(23)) iNSTRUMENT.PRODUCEDATE = reader.GetDateTime(23);
                    if (!reader.IsDBNull(24)) iNSTRUMENT.PURCHASEDATE = reader.GetDateTime(24);
                    if (!reader.IsDBNull(25)) iNSTRUMENT.DISCARDTIME = reader.GetDateTime(25);
                    if (!reader.IsDBNull(26)) iNSTRUMENT.GUIDELINE = reader.GetString(26);
                    if (!reader.IsDBNull(27)) iNSTRUMENT.FUNCTIONFEATURES = reader.GetString(27);
                    if (!reader.IsDBNull(28)) iNSTRUMENT.EXAMINATION = reader.GetGuid(28);
                    if (!reader.IsDBNull(29)) iNSTRUMENT.HasCMA = reader.GetInt32(29);
                    if (!reader.IsDBNull(30)) iNSTRUMENT.IsSpecial = reader.GetInt32(30);
                    if (!reader.IsDBNull(31)) iNSTRUMENT.TOTALLY = reader.GetInt32(31);
                    if (!reader.IsDBNull(32)) iNSTRUMENT.ACCEPTMISSION = reader.GetInt32(32);
                    if (!reader.IsDBNull(33)) iNSTRUMENT.EXTERNALSERVICE = reader.GetInt32(33);
                    if (!reader.IsDBNull(34)) iNSTRUMENT.PICTURE = reader.GetInt32(34);
                    if (!reader.IsDBNull(35)) iNSTRUMENT.ATTACHMENT = reader.GetInt32(35);
                    if (!reader.IsDBNull(36)) iNSTRUMENT.MEDIA = reader.GetInt32(36);
                    if (!reader.IsDBNull(37)) iNSTRUMENT.PURPOSEID = reader.GetString(37);
                    if (!reader.IsDBNull(38)) iNSTRUMENT.REALMID = reader.GetString(38);
                    if (!reader.IsDBNull(39)) iNSTRUMENT.WRITEDATE = reader.GetDateTime(39);
                    if (!reader.IsDBNull(40)) iNSTRUMENT.UPDATEDATE = reader.GetDateTime(40);
                    if (!reader.IsDBNull(41)) iNSTRUMENT.REMARK = reader.GetString(41);
                    if (!reader.IsDBNull(42)) iNSTRUMENT.AUDITINGSTATE = reader.GetInt32(42);
                    if (!reader.IsDBNull(43)) iNSTRUMENT.ASSESSOR = reader.GetString(43);
                    if (!reader.IsDBNull(44)) iNSTRUMENT.AUDITINGDATE = reader.GetDateTime(44);
                    if (!reader.IsDBNull(45)) iNSTRUMENT.RollCall = reader.GetInt64(45);
                    if (!reader.IsDBNull(46)) iNSTRUMENT.OringalId = reader.GetInt32(46);
                    if (!reader.IsDBNull(47)) iNSTRUMENT.Gather = reader.GetInt32(47);

                    iNSTRUMENT.MarkOld();
                    iNSTRUMENTlist.Add(iNSTRUMENT);
                }
                reader.Close();
            }
            return iNSTRUMENTlist;
        }