[Mono-list] (generic)DataTable SELECT logic

Jan van der watt janvanderwatt at gmail.com
Tue Mar 2 06:57:08 EST 2010


Hi,

On the topic of Microsoft's recommended expressions, it seems that Mono is
still lacking some implementations, specifically CONVERT.

In this code segment, an exception is thrown when the filter is used (spaces
here and there for clarity):

String source_filter = "
CONVERT(wsUhBedOccupancy__dsUhBedOccupancy__vwBedOccupancy__strBedCode,'System.String')
LIKE '%03cb%' ";

foreach ( DataRow raw_result_row in
intermediate_data_table.Select(source_filter) ) {
....
}

Exception:
Expression
'CONVERT(wsUhBedOccupancy__dsUhBedOccupancy__vwBedOccupancy__strBedCode,'System.String')
LIKE '%03cb%'' is invalid.

Of course, some help on exactly WHAT is invalid would help resolve the
problem.

All the columns exist etc., and it does work on .NET.
(and so does:
" wsUhBedOccupancy__dsUhBedOccupancy__vwBedOccupancy__strBedCode LIKE
'%03cb%' "
)

Before I log a bug for this, will you please be so kind and just check that
I did not go and do something terribly stupid in the way I constructed the
filter :-)

Thanks!

Jan


On 10 February 2010 22:36, Stifu <stifu at free.fr> wrote:

>
> It looks like a Mono bug (or incompatibility), could you file a bug report
> for it?
>
> By the way, could you try using another expression, such as "IS NULL" or
> "IS
> NOT NULL"?
> That's what Microsoft recommends, too:
>
> http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression%28VS.85%29.aspx
> "You can check for null values using the "is null" and "is not null"
> expressions."
>
>
> jan van der watt wrote:
> >
> > Hi,
> >
> > Please let me know if this should be posted to another forum.
> >
> > Has anyone else seen that the DataTable.Select(filterExpression) produces
> > a
> > funny when evaluating an expression that involves NULL, or is it just my
> > data/code gone wrong?
> >
> > My code snippet is this:
> > DataTable lookup_value_schema_table = <an appropriate table>;
> > lookup_value_schema_table.Select("IsDeletedColumn<>0")
> >
> > The dataset has either NULL or True in that column (but not False).
> >
> > On MS .NET, only the rows with "True" are returned, but on Mono, ALL rows
> > are returned. It seems that the expression "NULL<>0" is FALSE on MS .NET,
> > but TRUE on Mono.
> >
> > If I use:
> > lookup_value_schema_table.Select("IsDeletedColumn=True")
> > the results are as expected (i.e. only the rows with "True" in the column
> > are returned)
> >
> > Thanks
> >
> > Jan
> >
> > _______________________________________________
> > Mono-list maillist  -  Mono-list at lists.ximian.com
> > http://lists.ximian.com/mailman/listinfo/mono-list
> >
> >
>
> --
> View this message in context:
> http://old.nabble.com/%28generic%29DataTable-SELECT-logic-tp27528859p27529788.html
> Sent from the Mono - General mailing list archive at Nabble.com.
>
> _______________________________________________
> Mono-list maillist  -  Mono-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-list/attachments/20100302/7dd62cc3/attachment.html 


More information about the Mono-list mailing list