miércoles, mayo 18, 2005

Codigo ASP.Net - Usando el objeto HashTable

La idea era usar un arreglo (array) dentro de una de las aplicaciones. Esto generalmente lo uso bastante, y aun cuando en Asp es muy sencillo de usar y dimensionar un arreglo o array. En Asp.Net me encontre con la novedad de que existe 3 tipos diferentes de collecciones para un arreglo.

  1. ArrayList
  2. HashTable
  3. y SortedList

Tome como base una funcion select de Web Matrix dentro de una pagina. Realice una modificacion a la consulta y al final de las modificaciones la funcion me regresa un HashTable en lugar de un dataset.
Aun cuando se puede utilizar directamente un join en la tabla directamente para que me dieran los resultados me gusta usar arreglos para designar los diferentes titulos a valores de una tabla que se usa como llave secundaria.
Codigo:

Function obtenBancos() As HashTable
Dim connectionString As String = System.Configuration.ConfigurationSettings.AppSettings("CONNECTION_STRING")
Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString)

Dim queryString As String = "SELECT [Bancos].[IDBanco], [Bancos].[NombreBanco] FROM [Bancos] ORDER BY [Bancos].[NombreBanco] DESC"
Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

dbConnection.Open
Dim dataReader As System.Data.IDataReader = dbCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection)

Dim Bancos = New HashTable

While dataReader.Read()
Bancos.Add(dataReader(0),dataReader(1))
End While

Return Bancos
End Function


De esta manera cuando asi lo necesito hago llamar la funcion obtenBanco(2) y me resuelve con el banco correspondiente.
De la siguiente manera se puede llenar un DropDownList:

drpBancos.DataSource = obtenBancos()
drpBancos.DataValueField="Key"
drpBancos.DataTextField="Value"
drpBancos.DataBind()



Listo!

No hay comentarios.: