Espero te sirva este codigo, no esta optimizado pero se puede mejorar. en vez de llenar la consulta de un case se puede hacer a traves de otra funcion.
la funcion bindlist recibe el dropdownlist, el nº de la consulta y el mensaje que quieres que aparesca en la primera posicion.
Código HTML:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
DropDownList1.DataTextField = "TPREST_NOMBRE"
DropDownList1.DataValueField = "TPREST_ID"
BindList(DropDownList1, "1", "seleccione")
End If
End Sub
Public Sub BindList(ByVal cbo As DropDownList, ByVal NumConsulta As String, ByVal valor As String)
'recibe el objeto DropDownList que se llena al cargar la pagina
'Numconsulta opcion del case
'valor = primer registro que se visualiza
Dim ConnectionString As String = "server=(local);database=MibasedeDatos;UID=sa;PWD=Contraseña"
Dim myConnection As SqlConnection = New SqlConnection(ConnectionString)
Dim NomColumna As String
Select Case NumConsulta
Case "1"
NumConsulta = "Select TPREST_ID, TPREST_NOMBRE From TIPO_PRESTACION"
NomColumna = "TPREST_NOMBRE"
Case "2"
NumConsulta = "Select PROY_CODIGO From PROYECTO WHERE PROY_ESTADO <> 'FINALIZADO' ORDER BY PROY_CODIGO"
NomColumna = "PROY_CODIGO"
End Select
Dim myCommand As SqlCommand = New SqlCommand(NumConsulta, myConnection)
Dim myDataReader As SqlDataReader
Try
myConnection.Open()
myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
cbo.DataSource = myDataReader
cbo.DataBind()
Catch myException As Exception
Response.Write("Ha ocurrido un error : " & myException.ToString())
'ShowMessageBox(Me, "Ha ocurrido un error : " & myException.ToString())
Finally
If Not myDataReader Is Nothing Then
myDataReader.Close()
End If
cbo.Items.Insert(0, valor)
cbo.SelectedIndex = 0
End Try
End Sub
Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
TextBox12.Text = DropDownList1.SelectedItem.Value
TextBox13.Text = DropDownList1.SelectedItem.Text
End Sub
puedes recoger
indice a traves del selecteditem.value
valor a traves del selecteditem.text
tabla [TIPO_PRESTACION]
TPREST_ID / TPREST_NOMBRE
1 servicio
2 suministro
etc..
nos vemos
Kedron