Both External Content Types (to be precise, ECT is only a part of BCS - Business Connectivity Services) and DataSources (you can create them programmatically, not only through the SharePoint Designer) - can be used to connect external data to SharePoint.
I'd prefer to use BCS when dealing with important external data. In long perspective, this approach offers plenty of benefits. BCS is flexible, it is integrated with SharePoint Search, it distinguishes user privilegies, it can be highly customized with XML schemas, you can retrive the data programmatically, and also BCS supports almost the same look and feel (and functionality) for the data, as ordinary SharePoint lists. You can find BCS detailed overview, how-tos, walkthroughs and other documentation on MSDN.
For secondary data - DataSources approach could appear to be faster and flexible enough in most of circumstances. This way, you should connect your DataSource with a DataViewWebPart, and use XSL transformations to customize the appearance of the data. Keep in mind, that SharePoint XSLT is exceedingly extended, has many extension functions and ready-to-use code. DataViewWebPart is a very flexible and powerful OOTB webpart, which is entirely integrated with all other SharePoint webparts (for example, it can be connected with Filter webparts, can use ParameterBindings, etc.).
Also, there are some other ways to fetch external data and display it in SharePoint:
- Use custom classes and webparts for retrieving and displaying data. Not a recommended way, because in that case you don't have any integration with SharePoint at all. Could be chosen, if you have a ready ASP.Net code for displaying and retrieving the data, and you don't anticipate any need of further integration with SharePoint (for example, using site-scoped search, etc.).
- use SQL Server Integration Services (SSIS) in conjunction with SharePoint List Source and Destination adapters from OpenSource project Microsoft SQL Server Community Samples: Integration Services to syncronize your external data with an ordinary SharePoint list (actually, BCS pretends to do the same, however, External Lists still have many significant limitations). This approach is described on MSDN. A very promising solution, but you will need SSIS installed.
Drawing a line: I'd recommend you to investigate these approaches intently, and maybe eventually you will decide to refuse standard ASP.Net controls and common ASP.Net way to attain your objectives. I anticipate, that actually you can achieve the same result without creating a single custom webpart, and maybe even without writing any custom C#-code :) And the no-code solution could turn out to be much more flexible, than code one.