> -----Original Message----- > From: Discussion of advanced .NET topics. > [mailto:[EMAIL PROTECTED] On Behalf Of > Curt Hagenlocher > Sent: Thursday, August 17, 2006 1:27 PM > To: [email protected] > Subject: Re: [ADVANCED-DOTNET] SqlDataSource > > On 8/16/06, Shawn Wildermuth <[EMAIL PROTECTED]> wrote: > > > - SqlDataSources swallow errors (which is one reason I am firmly > > against them in all but the most RAD environments). > > > ! > > I'd love to know the justification for *that* decision. "Brain-dead" > doesn't *begin* to describe it. Does it equally swallow > errors on inserts, updates and deletes?
Sure do I. My favorite situation is when a concurrency failure happens. If the SqlDataSource affects zero rows, nothing happens. It looks like an update works. Yikes. You can get it with an event, but nothing by default. > > > > > - If you're sure the GetLotAttribute isn't being executed (SQL > > Profiler is probalby your friend here), then look at the events for > > the data source to get more information. If you hand the Selecting > > event, you can see the command before it attempts to be > executed (good > > for checking the state of parameters). > > > I've been using Profiler long enough to still call it "SQL > Trace" on occaision :). I'm quite sure it's not being called. > > After a bit of playing with the Selecting and Selected events > -- good call, that -- I have the following to report: > 1. The problem occurs when the parameter value is null. More > specifically, if the DefaultValue is blank and > ConvertEmptyStringToNull is set to true, I don't get any > data. If DefaultValue is not blank, or if > ConvertEmptyStringToNull is set to false, I do get data. The > parameter value correctly shows as "null" in the former case, > and doesn't otherwise look odd. > 2. When I get data, both the Selecting and the Selected > events fire. When I don't get data, Selecting fires, but > Selected does not. > > In case you're wondering, I can call the procedure with a > null value in Query Analyzer without any problem. > > > I decided to fire up Reflector and look for the reason -- and > I've found it. The static function > WebControls.Parameter.GetValue returns null for an empty > string instead of DbNull.Value when ConvertEmptyStringToNull" is set. > Chasing back up the call stack, I get to > WebControls.SqlDataSourceView.ExecuteSelect, where -- if the > value of the CancelSelectOnNullParameter attribute is true > and a null is returned by GetValue -- the select will simply > be canceled without an error. Naturally, this attribute is > set to true by default. Not terribly intuitive behavior as > far as I'm concerned. I am with you Curt...I have rallied against the control so far, and had a recent conversation with Scott Guthrie so maybe it'll be better in a future version... > > -- > Curt Hagenlocher > [EMAIL PROTECTED] > > =================================== > This list is hosted by DevelopMentorR http://www.develop.com > > View archives and manage your subscription(s) at > http://discuss.develop.com =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com
