ConvertEmptyStringToNull not working with ASP.NET SqlDataSource Parameters

The ConverEmptyStringToNull property of SqlDataSource Parameters does not work for asp.net 2.0 applications. You probably need this kind of setting when you have a stored procedure that can handle null as a valid parameter value, but the framework assumes nothing has been supplied and prevents the select/insert/update/delete statement from executing.

You can however, get it to work if you set the CancelSelectOnNullParameter property of the SqlDataSource to false. This is a known issue, according to microsoft from this post:

The common scenario is a TextBox bound to a ControlParameter, whose initial value is empty string (gets converted to null because ConvertEmptyStringToNull is true by default), where you only want the query to execute when the user has actually supplied a non-empty value. I agree however, that there are some scenarios where you want to execute the SelectCommand anyway even is there is a null parameter (which gets converted to DbNull by SqlDataSource), and that is precisely why we allow you to set the CancelSelectOnNullParameter property to false.

Not sure if this has been addressed in later versions of the .NET framework.

Related Posts

Unresolved Assembly Reference when Merging Precompiled ASP.NET Assemblies

If you need to merge the output DLLs generated after precompiling an ASP.NET website from Visual Studio 2008 and later, you need to use the ASP.NET merge tool. The location of this tool is a bit tricky, though. The version in the default location is actually the wrong one!

Accessing the VMware BIOS Screen at startup

Fortunately, there is a configuration setting that will give you more time to enter the BIOS screen at startup. It will make the POST screen delay for the specified number of milliseconds.

Reading a Binary XML stream in WCF

If you don’t provide a dictionary to read the XML stream with, you will get a weird and unhelpful exception that says “the input source is not correctly formatted”, and googling around will only bring you to posts telling you that “your client/server endpoints are not matched” or “you need to use the basicHttpBinding”. This is not a binding issue – it’s a deserialization issue that comes up when i make an attempt to inspect the soap messages coming in to (or going out of) my WCF service.

Specifing the bridging network adapter in vmware player 4

For those of you using VMware Player 4 on linux hosts, if you’re not happy with the autobridging for the vmnet0 network, you can choose a specific…

How TestDisk and the GParted LiveCD saved my deleted partitions

I was messing around with Vmware converter (in windows XP, running from a dual-boot partition), and then I kept getting the following message: “FAILED: Unable to find…

Reset Forgotten Local Administrator Password on Windows

Where angels fear to tread, fools rush in. I happily removed my computer from the domain and restarted Windows 7. When the computer came back up, I couldn’t login with my domain user account – which was not surprising. However, I could not log in with the local admin account either! I had reset the password like 6 months ago and forgotten about it. Now I couldn’t log in to the computer, and no one could help me remotely.

This Post Has 2 Comments

Comments are closed.