[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Reporting
[Expand]Report and Dashboard Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Collapse]eXpress Persistent Objects
 [Expand]Product Information
 [Expand]Getting Started
 [Expand]Fundamentals
 [Expand]Feature Center
 [Expand]Concepts
 [Expand]Design-Time Features
 [Collapse]Examples
   How to: Access Data in SQL Query Results
   How to: Bind an XPCollection to a LookUp
   How to: Bind an XPCollection to Standard Controls
   How to: Bind an XPCollection to the DataGrid
   How to: Bind an XPCollection to the Grid
   How to: Build Complex Criteria
   How to: Build Simple Criteria
   How to: Change Inheritance Mapping
   How to: Connect to a SQL Server
   How to: Connect to SQL Azure
   How to: Connect XPO to a Database Other than MS SQL or MS Access
   How to: Control Automatic Saving of Objects when Editing in a Grid
   How to: Create an Aggregated Object
   How to: Delay Property Loading
   How to: Filter By DateTime Values
   How to: Filter Persistent Objects by Type
   How to: Handle Persistent Object Initialization
   How to: Implement a Custom Criteria Language Function Operator
   How to: Implement a Full-Text Search
   How to: Implement Custom Functions and Criteria in LINQ to XPO
   How to: Implement Many-to-Many Relationships
   How to: Implement One-to-One Relationships
   How to: Link Classes Located in Different Assemblies
   How to: Make a Class or Property Non-Persistent
   How to: Make XPCollection Create Objects of Specific Type when They are Created via Bound Controls
   How to: Map to Custom Tables (Views) and Columns
   How to: Obtain a Collection of Persistent Objects by a Set of Their IDs
   How to: Obtain a Collection of Persistent Objects for Processing
   How to: Persist a BLOB Field
   How to: Prevent Changes in a Persistent Object from being Automatically Committed
   How to: Restore Deleted Objects
   How to: Use Pageable Collections
   How to: Use Read-Only Persistent Properties
   How to: Use the ContainsOperator for Objects in a Many-to-Many Relationship
   How to: Validate an Object
   How to: Work with Structures
 [Expand]Member Tables
 [Expand]API Reference
[Expand]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

How to: Access Data in SQL Query Results

This example demonstrates a way of accessing data in result sets returned by SQL queries and Stored Procedures.

The Session.ExecuteQuery and Session.ExecuteSproc methods return their results as a SelectedData object instance. This object provides the SelectedData.ResultSet array that stores the resulting data. The array contains one SelectStatementResult item per each SELECT statement executed in a SQL query (Session.ExecuteQuery) or stored procedure (Session.ExecuteSproc). SelectStatementResult items contain data retrieved by executing a respective SELECT statement. Some SQL databases may return a Return Code when executing a stored procedure. In this situation, an additional SelectStatementResult item containing the Return Code, is appended to the SelectedData.ResultSet array.

The SelectStatementResult items provide the SelectStatementResult.Rows property, which allows you to access resulting rows as an array of SelectStatementResultRow objects. Each SelectStatementResultRow object has a Values property, providing an array of values that correspond to individual columns in a resulting row.

The following code snippet shows how to display values of the first two columns from a SelectedData object:

The Session.ExecuteQueryWithMetadata method retrieves the types and names of retrieved columns along with the query result set. The SelectedData.ResultSet array returned by this method contains one SelectStatementResult holding the metadata plus one SelectStatementResult item per each SELECT statement. The metadata SelectStatementResult contains rows corresponding to retrieved columns. Each row contains three values - the name of a column, the underlying SQL data type, and a .NET type to which the columns value is mapped.

The following code snippet shows how to display names of the retrieved columns from a SelectedData object:

Is this topic helpful?​​​​​​​