You are mixing up the numbers with the text representation of the numbers. As a number, the value doesn't have any specific format, it's only when you turn the number into a string or parse a string into a number that the cultural settings come into play.
If you store the number as text in the database, it will be compared as text when you try to sort it. You should store the number as a number, then it will be sorted correctly.
If you have a double value in your ASP.NET code and send that in a query using a parameter, there is no cultural issues with the decimal separator.
If you are concatenating the decimal value into an SQL query (which is not recommended), you would use a period as decimal separator. SQL always uses period as decimal separator, just as with a double literal in your ASP.NET code.