Ya está solucionado, no me estaba dando cuenta que en el momento que cargo los valores en el Me.cargarComboS1.DataSource = ds.Tables(0) y Me.cargarComboS1.DataValueField = "DI" estaba llamando de nuevo a la misma funcion en vez de poner el nombre correcto del combo.
Quedaria así:
Código vb.net:
Ver originalTry
da.Fill(ds)
If IsPostBack = False Then
[B]Me.DropDownListS1.DataSource = ds.Tables(0)
Me.DropDownListS1.DataValueField = "DI"
Me.DropDownListS1.DataTextField = "DI"
Me.DropDownListS1.DataBind()[/B]
End If
Catch ex As Exception
Finally
If conn.State = ConnectionState.Open Then
conn.Dispose()
End If
End Try