Connect Workday to your favorite reporting tools without moving data.
Learn More →DataBind Elasticsearch Data to the DevExpress Data Grid
Use the CData ADO.NET Provider for Elasticsearch with the DevExpress Windows Forms and Web controls to provide Elasticsearch data to a chart.
The CData ADO.NET Provider for Elasticsearch implements standard ADO.NET data access components that can be used with third-party controls. The standard ADO.NET process for databinding can be followed to enable bidirectional access to live data from UI controls. In this article we show how to use the CData components to databind to the DevExpress Windows Forms and Web controls; you will databind to a chart that displays current data.
Set the Server and Port connection properties to connect. To authenticate, set the User and Password properties, PKI (public key infrastructure) properties, or both. To use PKI, set the SSLClientCert, SSLClientCertType, SSLClientCertSubject, and SSLClientCertPassword properties.
The data provider uses X-Pack Security for TLS/SSL and authentication. To connect over TLS/SSL, prefix the Server value with 'https://'. Note: TLS/SSL and client authentication must be enabled on X-Pack to use PKI.
Once the data provider is connected, X-Pack will then perform user authentication and grant role permissions based on the realms you have configured.
Windows Forms Controls
The code below shows how to populate a DevExpress chart with Elasticsearch data. The ElasticsearchDataAdapter binds to the Series property of the chart control. The Diagram property of the control defines the x- and y-axes as the column names.
using (ElasticsearchConnection connection = new ElasticsearchConnection(
"Server=127.0.0.1;Port=9200;User=admin;Password=123456;")) {
ElasticsearchDataAdapter dataAdapter = new ElasticsearchDataAdapter(
"SELECT Orders.Freight, Customers.ContactName FROM Customers INNER JOIN Orders ON Customers.CustomerId=Orders.CustomerId", connection);
DataTable table = new DataTable();
dataAdapter.Fill(table);
DevExpress.XtraCharts.Series series = new DevExpress.XtraCharts.Series();
chartControl1.Series.Add(series);
series.DataSource = table;
series.ValueDataMembers.AddRange(new string[] { "Freight" });
series.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Qualitative;
series.ArgumentDataMember = "OrderName";
series.ValueScaleType = DevExpress.XtraCharts.ScaleType.Numerical;
chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
((DevExpress.XtraCharts.SideBySideBarSeriesView)series.View).ColorEach = true;
}

Web Controls
The code below shows how to populate a DevExpress Web control with Elasticsearch data. The ElasticsearchDataAdapter binds to the Series property of the chart; the Diagram property defines the x- and y-axes as the column names.
using DevExpress.XtraCharts;
using (ElasticsearchConnection connection = new ElasticsearchConnection(
"Server=127.0.0.1;Port=9200;User=admin;Password=123456;"))
{
ElasticsearchDataAdapter ElasticsearchDataAdapter1 = new ElasticsearchDataAdapter("SELECT Orders.Freight, Customers.ContactName FROM Customers INNER JOIN Orders ON Customers.CustomerId=Orders.CustomerId", connection);
DataTable table = new DataTable();
ElasticsearchDataAdapter1.Fill(table);
DevExpress.XtraCharts.Series series = new Series("Series1", ViewType.Bar);
WebChartControl1.Series.Add(series);
series.DataSource = table;
series.ValueDataMembers.AddRange(new string[] { "Freight" });
series.ArgumentScaleType = ScaleType.Qualitative;
series.ArgumentDataMember = "OrderName";
series.ValueScaleType = ScaleType.Numerical;
((DevExpress.XtraCharts.SideBySideBarSeriesView)series.View).ColorEach = true;
}
