I'm not completely sure what you mean by using SQL vs a data source. usually there will be a data source whether you query it using SQL or not.
You might be wondering about querying for data at run time and binding the control at design time. If that's the case, then there are a few differences. You can compose the query at run time if you don't bind at design time. Although you can probably also change the query used to select data for binding.
In the past, Microsoft has frequently changed the way the bound data objects work. that hasn't happened in a while but when it does, it's often easier to update a program for a new version if you're doing everything in code rather than through bindings.
When push comes to shove, however, it's often a question of personal preference, what you're more comfortable with, and what is easier to understand.
(Unless I misunderstood the question.)