Un datalist è un oggetto server che puoi adoperare.

Ad esempio, questo è del codice che adopera un datalist (lato HTML):

<aspataList id="DataList1" runat="server" CellPadding="4" RepeatColumns="5" RepeatDirection="Horizontal" BorderColor="#3366CC" BorderStyle="None" BackColor="Black" GridLines="None" BorderWidth="1px" HorizontalAlign="Center">
<SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
<FooterStyle ForeColor="#003399" BackColor="#99CCCC"></FooterStyle>
<ItemStyle ForeColor="#003399" BackColor="White" Height="100"></ItemStyle>
<ItemTemplate>
<A href='<%#DataBinder.Eval(Container.DataItem,"link" ) %>'><IMG height=<%#DataBinder.Eval(Container.DataItem,"alte zza") %> src='<%#DataBinder.Eval(Container.DataItem,"fotoqu adro") %>' width=<%#DataBinder.Eval(Container.DataItem,"largh ezza") %> border=none>


<SPAN class="testopiccolo">
<%#DataBinder.Eval(Container.DataItem,"descrizione ") %>
</SPAN></A>
</ItemTemplate>
<HeaderStyle Font-Bold="True" ForeColor="#CCCCFF" BackColor="#003399"></HeaderStyle>
</aspataList>

Poi devi scrivere del codice in un linguaggio lato server per estrarre i dati dal db in modo da popolare un datalist.

Infatti se noti, nel codice che ti ho postato prima, trovi, ad esempio:
<%#DataBinder.Eval(Container.DataItem,"altezza") %>
Questo vuol dire che un campo del DB che si chiama altezza viene mappato all'interno del datalist.

Spero di essere stato chiaro.