Te mando el código de una página de prueba, sólo con una dropdown, y en el load se rellena. Presta especialmente atencion al codebehind y el inherits. Espero que te ayude.
---ASPX ---
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="pruebas.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:DropDownList id="DropDownList1" style="Z-INDEX: 101; LEFT: 280px; POSITION: absolute; TOP: 184px"
runat="server"></asp:DropDownList>
</form>
</body>
</HTML>
---VB -----
Public Class WebForm1
Inherits System.Web.UI.Page
...codigo generado por ....
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Introducir aquí el código de usuario para inicializar la página
Dim connectionString As String
Dim sql As String
Dim miDataset As DataSet
Dim conexion As New OleDb.OleDbConnection(connectionString)
Dim comando As New OleDb.OleDbCommand(sql, conexion)
Dim adaptador As New OleDb.OleDbDataAdapter(comando)
adaptador.Fill(miDataset)
DropDownList1.DataSource = miDataset
DropDownList1.DataTextField = "campo1"
DropDownList1.DataValueField = "campo2"
DropDownList1.DataBind()
End Sub