Geeks With Blogs

News My Blog has been MOVED to https://mfreidge.wordpress.com
Michael Freidgeim's OLD Blog My Blog has been MOVED to https://mfreidge.wordpress.com
I wanted to use   SQL's "like" patterns to compare in .Net.
I found the good C# implementation of  function in thread Using Regex to create a SQL's "like" like function.
The function  IsSqlLikeMatch works fine, but I've noticed that the search is case-sensitive.
It's also doesn't match % if there are multiple lines.
But it was easy to change by modifying IsMatch call to

return Regex.IsMatch(input, pattern, RegexOptions.IgnoreCase | RegexOptions.Singleline);

Note that it could be very serious performance hit, if the pattern is started with %.

 

E.g for patternsPattern='%Part1%Part2%' and long message (Length 30720) time spent 40 sec!

but for pattern 'Begin%Part1%Part2%' and the same long message  time spent is almost 0 .The test code with time measured:

 

 

  DateTime start = DateTime.Now;

DebugOutputHelper.TracedLine("IsSqlLikeMatch sPattern=" + sPattern + " errorMsg.Length " + errorMsg.Length + " Started " + start.ToString());

bRet = errorMsg.IsSqlLikeMatch(pattern);

TimeSpan timeDifference = DateTime.Now - start;

DebugOutputHelper.TracedLine("IsSqlLikeMatch sPattern="+ sPattern +" errorMsg.Length "+ errorMsg.Length +

" time spent " + timeDifference.ToString());

Posted on Tuesday, December 22, 2009 4:18 AM .Net Framework , SQL Server | Back to top


Comments on this post: SQL's "like" patterns to compare in .Net

# re: SQL's "like" patterns to compare in .Net
Requesting Gravatar...
Thank You for nice article
Left by Software Development & Outsourci on Jan 07, 2010 5:19 AM

Your comment:
 (will show your gravatar)


Copyright © Michael Freidgeim | Powered by: GeeksWithBlogs.net