ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Data Namespace / QueryDef Class / WhereClause Property
Example Version

WhereClause Property (QueryDef)
Gets or sets the where clause used to filter the rows returned.
Syntax
public string WhereClause {get; set;}
Remarks
Rows for which the where clause evaluates to True are returned by the filter. Those rows which evaluate to False or Unknown (Null) are not returned.
Example
Evaluating a QueryDef on a single table
public async Task SimpleQueryDef()
{
    await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
    {
        using (Geodatabase geodatabase = new Geodatabase(new DatabaseConnectionFile(new Uri("path\\to\\sde\\file"))))
        {
            QueryDef adaCompilantParksQueryDef = new QueryDef
            {
                Tables = "Park",
                WhereClause = "ADACOMPLY = 'Yes'",
            };

            using (RowCursor rowCursor = geodatabase.Evaluate(adaCompilantParksQueryDef, false))
            {
                while (rowCursor.MoveNext())
                {
                    using (Row row = rowCursor.Current)
                    {
                        Feature feature = row as Feature;
                        Geometry shape = feature.GetShape();

                        String type = Convert.ToString(row["ADACOMPLY"]); // will be "Yes" for each row.

                        try
                        {
                            Table table = row.GetTable(); // Will always throw exception.
                        }
                        catch (NotSupportedException exception)
                        {
                            // Handle not supported exception.
                        }
                    }
                }
            }
        }
    });
}
Evaluating a QueryDef on a Join using WHERE Clause
public async Task JoiningWithWhereQueryDef()
{
    await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
    {
        using (Geodatabase geodatabase = new Geodatabase(new DatabaseConnectionFile(new Uri("path\\to\\sde\\file"))))
        {
            QueryDef municipalEmergencyFacilitiesQueryDef = new QueryDef
            {
                SubFields = "EmergencyFacility.OBJECTID, EmergencyFacility.Shape, EmergencyFacility.FACILITYID, FacilitySite.FACILITYID, FacilitySite.FCODE",
                Tables = "EmergencyFacility, FacilitySite",
                WhereClause = "EmergencyFacility.FACNAME = FacilitySite.NAME AND EmergencyFacility.JURISDICT = 'Municipal'",
            };

            using (RowCursor rowCursor = geodatabase.Evaluate(municipalEmergencyFacilitiesQueryDef, false))
            {
                while (rowCursor.MoveNext())
                {
                    using (Row row = rowCursor.Current)
                    {
                        Feature feature = row as Feature;
                        Geometry shape = feature.GetShape();

                        long objectID = Convert.ToInt64(row["EmergencyFacility.OBJECTID"]);
                        String featureCode = Convert.ToString(row["FacilitySite.FCODE"]);

                        IReadOnlyList<Field> fields = feature.GetFields(); //Contains one ArcGIS.Core.Data.Field objects for every subfield
                    }
                }
            }
        }
    });
}
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also