Curso de ASP NET Avanzado

Cursos Relacionados:

Llenar un DataSet.

El método Fill, se encarga de crear las tablas, y darle los nombres de columnas y los tipos de dato que almacenarán esas columnas, así como de rellenar las filas con los datos en función del resultado obtenido con la consulta SQL creada para la propiedad SelectCommand. De este modo rellena el DataSet indicado y sus DataTable. Los tipos de datos que otorga a cada columna siguen las siguientes reglas de concordancia que puedes ver en la siguiente tabla:

Tipo SQL Server Tipo .NET Framework Método de acceso al tipo .NET Framework Método de Acceso al tipo SQL Server
bigint Int64 GetInt64() GetSqlInt64()
binary Byte[] GetBytes() GetSqlBinary()
bit Boolean GetBoolean() GetSqlBit()
char String, Char[] GetString(), GetChars() GetSqlString()
datetime DateTime GetDateTime() GetSqlDateTime()
decimal Decimal GetDecimal() GetSqlDecimal()
float Double GetDouble() GetSqlDouble()
image Byte[] GetBytes() GetSqlBinary()
int Int32 GetInt32() GetSqlInt32()
money Decimal GetDecimal() GetSqlMoney()
nchar String, Char[] GetString(), GetChars() GetSqlString()
ntext String, Char[] GetString(), GetChars() GetSqlString()
numeric Decimal GetDecimal() GetSqlDecimal()
nvarchar String, Char[] GetString(), GetChars() GetSqlString()
real Single GetFloat() GetSqlSingle()
smalldatetime DateTime GetDateTime() GetSqlDateTime()
smallint Int16 GetInt16() GetSqlInt16()
smallmoney Decimal GetDecimal() GetSqlDecimal()
sql_variant Object GetValue() GetSqlValue()
text String, Char[] GetString(), GetChars() GetSqlString()
timestamp Byte[] GetBytes() GetSqlBinary()
tinyint Byte GetByte() GetSqlByte()
uniqueidentifier Guid GetGuid() GetSqlGuid()
varbinary Byte[] GetBytes() GetSqlBinary()
varchar String, Char[] GetString(), GetChars() GetSqlString()

El método Fill no genera una clave primaria por si mismo, para ello debemos indicárselo nosotros mismos para asegurarnos que no tenemos registros duplicados.

En el siguiente código veremos como rellenar un DataTable de un DataSet usando una conexión a SQL Server y a la base de datos Northwind:

Default.aspx

Únicamente hemos añadido un control GridView al que le he aplicado un formato automático para mejorar su presentación mediante estilos.

Default.aspx.vb

Resultado en el navegador:

A primera vista puede "asustar" un poco el haber utilizado tantos objetos para recoger datos de una tabla, pero visto tranquilamente se puede ver que los pasos siguen una jerarquía bastante lógica, y fácil de reutilizar para otras páginas. Analicemos cada paso:

  • Importar los espacios de nombres que vamos a utilizar.

  • Creamos el objeto Connection mediante la cadena de conexión. Recuerda que aunque hemos estado insistiendo en que DataSet es una clase desconectada, necesita de otro objeto para enlazar con la base de datos, el objeto DataAdapter.

  • Creamos el objeto Command con la sentencia SQL que deseamos ejecutar. En este caso queremos recibir todos los campos de la tabla Territories que cumplan con la condición de que su campo regionID sea igual a 3. Observa como aún trabajando con clases desconectas, el objeto Command que más adelante vinculamos al DataAdapter requiere de la conexión.

  • Declaramos el objeto DataAdapter, encargado de ejecutar el objeto Command que hemos creado en el paso anterior, mediante su propiedad SelectCommand

  • Abrimos la conexión.

  • Creamos el objeto DataSet y rellenamos un DataTable que contiene la tabla Territorios, puede recibir el nombre que más te interese. Para rellenar utilizamos el método Fill de DataAdapter que está ligado a la propiedad SelectCommand.

  • Cerramos la conexión.

  • Vinculamos los datos almacenados mediante tablas en el DataSet al control GridView para que se encargue de mostrarlos.

En este ejercicio podemos ahorrarnos los pasos de abrir y cerrar la conexión, ya que el método Fill, comprueba si la conexión esta abierta, y si no es así, la abre por él mismo.  Lo mismo sucede al cerrar, cuando ha dejado de ser útil la conexión, la cierra. Puedes probar a eliminar las líneas de código de apertura y cierre de la conexión y comprobar que obtienes el mismo resultado.

 

 


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de ASP NET Avanzado y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Si desea obtener un acceso sin restricciones a los contenidos del curso de ASP NET Avanzado y disfrutar de todas las herramientas del aula virtual (Videos explicativos streaming, acceso a los foros, chat, ejercicios resueltos, la ayuda del tutor, audioconferencia, estudio de grabación, test y actividades de autoevaluación, etc...) puede inscribirse completamente gratis y comenzar a realizar de forma inmediata el curso.