If yes, why are there still so many successful SQL injections? Just because some developers are too dumb to use parameterized statements?
To protect your application from SQL injection, perform the following steps:
Step 1. Constrain input. Step 2. Use parameters with stored procedures. Step 3. Use parameters with dynamic SQL.
Refer to http://msdn.microsoft.com/en-us/library/ff648339.aspx