Ejemplo n.º 1
0
        private void BtnUpdateMatchingRecords_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                string filter = "(~FirstName = 'andrew' OR ~FirstName = 'nancy') AND ~LastName = 'fuller'";
                FilterExpressionGroup filterExpGrp = FilterExpressionGroup.Parse(filter);
                Table table = _db.SelectRecords(filterExpGrp);
                displayRecords(table);

                // equivalent building it manually
                var fname1Exp = new FilterExpression("FirstName", "andrew", EqualityEnum.Equal, MatchTypeEnum.IgnoreCase);
                // the following two lines produce the same FilterExpression
                var fname2Exp = FilterExpression.Parse("~FirstName = nancy");
                fname2Exp = new FilterExpression("FirstName", "nancy", EqualityEnum.Equal, MatchTypeEnum.IgnoreCase);
                var lnameExp = new FilterExpression("LastName", "fuller", EqualityEnum.Equal, MatchTypeEnum.IgnoreCase);

                var fnamesGrp = new FilterExpressionGroup();
                fnamesGrp.Add(BoolOpEnum.Or, fname1Exp);
                fnamesGrp.Add(BoolOpEnum.Or, fname2Exp);
                var allNamesGrp = new FilterExpressionGroup();
                allNamesGrp.Add(BoolOpEnum.And, lnameExp);
                allNamesGrp.Add(BoolOpEnum.And, fnamesGrp);

                var fieldValues = new FieldValues();
                fieldValues.Add("IsCitizen", false);
                int nRecs = _db.UpdateRecords(allNamesGrp, fieldValues);

                table = _db.SelectRecords(allNamesGrp);
                displayRecords(table);

                // or easiest of all use the filter string directly
                table = _db.SelectRecords(filter);
                displayRecords(table);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }