Enas Ali
Enas Ali

Reputation: 72

How to avoid error if no datarows match the condition in linq query?

I work to select stations according to the following conditions code

var NStations = stations.AsEnumerable()
                        .Where(r => r.Field<double>("Distance") < SP_Radius)
                        .OrderBy(r => r.Field<double>("Distance"))
                        .CopyToDataTable();

The problem if no data matches the first condition, I will get error stop the program.

How can I avoid this problem where no datarow is retrieved?

ERROR :

The source contains no DataRows.

It check the first condition and one go to the second condition to order it give the above error.

Upvotes: 2

Views: 3077

Answers (1)

Selman Gen&#231;
Selman Gen&#231;

Reputation: 101681

You can separate your query into two parts:

var result = stations.AsEnumerable()
             .Where(r => r.Field<double>("Distance") < SP_Radius);

if(result.Any())
{ 
   var NStations = result.OrderBy(r => r.Field<double>("Distance"))
                         .CopyToDataTable();
} 

Upvotes: 3

Related Questions