Binding optional parameters

M

Mark Baldwin

I have a web page with various controls that supply parameters to an
ObjectDataSource. The ObjectDataSource has various methods that allow for
filtering of the results...GetProductsByID(), GetProductsByIDAndDate()...etc

Because the parameters are optional, I have to make a methods that take all
variantions of these parameters, so if I have 3 parameters, I need 7
methods, I then have to write code to call the correct method depending on
which parameters have been selected.

I am just wondering if there is an easier way to do this - maybe have one
method with all parameters and then let the ObjectDataSource determine the
parameters on the query?
 
C

Cowboy \(Gregory A. Beamer\)

Write a stored procedure that accepts the parameters. The select ends up
something like:

SELECT * FROM Table1
WHERE ((column1 = @column1) OR (@column1 IS NULL))

repeat for other optional parameters.
 
S

Steven Cheng[MSFT]

Hi Mark,

IMO, I would suggest you create a single method which take the maximum
count of parameters and determine the select/filter code logic in this
method(or you can create several private/internal helper methods which do
select/filter according to the different paramter combinations). This is
because ObjectDataSource can only be configured to use a single Select
method at a time and it is not quite good to change it at runtime, so it's
better to only expose one public select method in our business logic class.


As Gregory mentioned, you can check the paramter value and do select
filtering in stored procedure(at database layer). Instead, you can also
move the parameter checking and select/filter logic in business class code.
It's up to you according to the detailed scenario.

If you have any further questions, please feel free to post here.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead



==================================================

Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.



Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.

==================================================



This posting is provided "AS IS" with no warranties, and confers no rights.
 
S

Steven Cheng[MSFT]

Hi Mark,

Have you got any further ideas on this issue? If you have any other
questions like to discuss on this , please feel free to post here.


Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead


This posting is provided "AS IS" with no warranties, and confers no rights.
 
M

Mark Baldwin

I have modified my project to use a business layer. This meant removing all
of the SqlDataSource objects and replacing them with ObjectDataSource. These
then link to the code in the business layer that includes one function that
takes all possible arguments, which DataSet method is called to get the data
however, depends on which parameters are passed.

Seem to work great! Thanks for your help...
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top