Linq query(2)

I have 4 columns in a excel sheet, in that one column is of date, so i want to get the whole row of data from excel using just date column of some specified range?

1 Like

Hope this would help you

Cheers @Manish540

Can you explain this code to me.
dataTable.Select(“date >= #” + 15/09/2019 + “# AND date <= #” + 18/09/2019 + “#”).CopyToDataTable

what does ‘#’ and ‘date’ represent in the code?

‘#’ is for the syntax using date datatype as a filter.
date is the column name of your datatable.

1 Like

It’s giving me error as, disallows implicit conversions from from ‘string’ to ‘double’.

Hello @Manish540
Try this
DT.AsEnumerable().Where(Function(r) cdate(r("ColumnName"))< cdate("YourDate") or CDate(r("ColumnName"))> cdate("Yourdate") ).CopyToDataTable


Source: Assign

Message: Conversion from string “15/09/2019” to type ‘Date’ is not valid.

Exception Type: System.InvalidCastException

An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is:
System.InvalidCastException: Conversion from string “15/09/2019” to type ‘Date’ is not valid.
at Microsoft.VisualBasic.CompilerServices.Conversions.ToDate(String Value)
at lambda_method(Closure , DataRow )
at System.Linq.Enumerable.WhereEnumerableIterator1.MoveNext() at System.Data.DataTableExtensions.LoadTableFromEnumerable[T](IEnumerable1 source, DataTable table, Nullable1 options, FillErrorEventHandler errorHandler) at System.Data.DataTableExtensions.CopyToDataTable[T](IEnumerable1 source)
at lambda_method(Closure , ActivityContext )
at Microsoft.VisualBasic.Activities.VisualBasicValue1.Execute(CodeActivityContext context) at System.Activities.CodeActivity1.InternalExecuteInResolutionContext(CodeActivityContext context)
at System.Activities.Runtime.ActivityExecutor.ExecuteInResolutionContext[T](ActivityInstance parentInstance, Activity1 expressionActivity) at System.Activities.InArgument1.TryPopulateValue(LocationEnvironment targetEnvironment, ActivityInstance activityInstance, ActivityExecutor executor)
at System.Activities.RuntimeArgument.TryPopulateValue(LocationEnvironment targetEnvironment, ActivityInstance targetActivityInstance, ActivityExecutor executor, Object argumentValueOverride, Location resultLocation, Boolean skipFastPath)
at System.Activities.ActivityInstance.InternalTryPopulateArgumentValueOrScheduleExpression(RuntimeArgument argument, Int32 nextArgumentIndex, ActivityExecutor executor, IDictionary2 argumentValueOverrides, Location resultLocation, Boolean isDynamicUpdate) at System.Activities.ActivityInstance.ResolveArguments(ActivityExecutor executor, IDictionary2 argumentValueOverrides, Location resultLocation, Int32 startIndex)
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

Getting this error.

My code,
dataTable.AsEnumerable().Where(Function® cdate(r(“Estimated Date Of Arrival”))< “15/09/2019” or CDate(r(“Estimated Date Of Arrival”))>“18/09/2019” ).CopyToDataTable

hello @Manish540

Hi Vishal whether the above code is working for u?

Hello @Manish540
Please copy the code as it have skipped cdate in your code after mathematical signs
and one more thing put your date in MM/dd/yyyy format

yes bro

One more question, how to filter date column, just by giving the month and the year?

Hello @Manish540

you can do that by using this code

DT.AsEnumerable().Where(Function(r) cdate(r("C1")).ToString("MM-yyyy") = ("09-2019")).CopyToDataTable

and also you can learn basics of Linq using this site or by doing quick web search so that you’ll never face problems like this.
Check it out.

1 Like

Thank You

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.