Compartir a través de


Escribir una clase auxiliar para llenar el conjunto de datos

El esquema del conjunto de datos que acaba de crear para la tabla Cliente es una estructura de datos. En tiempo de ejecución, el código es necesario para llenar la estructura del conjunto de datos con datos de la base de datos. En esta sección, va a crear una clase auxiliar que llene el conjunto de datos con datos.

Para crear una clase auxiliar con el fin de llenar el conjunto de datos con datos

  1. En el Explorador de soluciones, haga clic con el botón secundario en el nombre de proyecto en negrita, elija Agregar y, a continuación, haga clic en Agregar nuevo elemento.

  2. En el cuadro de diálogo Agregar nuevo elemento, en la lista Plantillas instaladas de Visual Studio, seleccione Clase.

  3. En el campo Nombre, especifique el nombre "DataSetConfiguration" y, a continuación, haga clic en Agregar.

    Nota

    Si se abre un cuadro de diálogo y se le pide que coloque la clase en un directorio denominado "Code", haga clic en Sí.

  4. Sobre la firma de clase, agregue una declaración "Imports"[Visual Basic] o "using"[C#] en la parte superior de la clase para los espacios de nombres System.Data y System.Data.OleDb.

    Imports System.Data
    Imports System.Data.OleDb
    
    using System.Data;
    using System.Data.OleDb;
    
  5. En la parte superior de la clase, cree una constante denominada CONNECTION_STRING para que contenga la cadena de conexión a la base de datos de ejemplo Xtreme.

<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images\z15yzzew.alert_note(es-es,VS.90).gif" class="note" />Nota</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>El código siguiente utiliza la ubicación de la base de datos de ejemplo para Crystal Reports para Visual Studio 2005. Para comprobar que tiene la ruta de directorio de archivos correcta de la base de datos xtreme.mdb, vea <a href="ms225530(v=vs.90).md">Ubicación de la base de datos de ejemplo Xtreme</a>.</p></td>
</tr>
</tbody>
</table>

``` vb
Private Const CONNECTION_STRING As String ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Archivos de programa\Microsoft Visual Studio 8\Crystal Reports\Samples\Es\Database\xtreme.mdb"
```

``` csharp
private const string CONNECTION_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Archivos de programa\\Microsoft Visual Studio 8\\Crystal Reports\\Samples\\Es\\Database\\xtreme.mdb";
```
  1. Debajo de la primera constante, cree una segunda constante denominada QUERY_STRING para que contenga la cadena de consulta de la base de datos.
<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images\z15yzzew.alert_note(es-es,VS.90).gif" class="note" />Nota</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>Esta cadena de consulta sencilla selecciona todas las columnas, pero sin criterios. Para la base de datos de ejemplo Xtreme, se devolverá sólo una cantidad pequeña de datos. Sin embargo, en la mayoría de los casos, para limitar la consulta se recomienda incluir una cláusula WHERE y seleccionar un número limitado de columnas.</p></td>
</tr>
</tbody>
</table>

``` vb
Private Const QUERY_STRING As String = "SELECT * FROM CUSTOMER"
```

``` csharp
private const string QUERY_STRING = "SELECT * FROM CUSTOMER";
```
  1. Debajo de la segunda constante, cree una tercera denominada DATATABLE_NAME para el nombre de la tabla de datos que se va a llenar en el conjunto de datos.
El paso siguiente explica cómo crear una constante DIRECTORY\_FILE\_PATH. Esta constante sólo es necesaria si se crea un sitio Web en Visual Studio 2005. En caso contrario, sáltese este paso.

``` vb
Private Const DATATABLE_NAME As String = "Customer"
```

``` csharp
private const string DATATABLE_NAME = "Customer";
```
  1. Debajo de la tercera constante, cree una cuarta constante denominada DIRECTORY_FILE_PATH para hacer referencia a la ruta del directorio del archivo xsd.
<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images\z15yzzew.alert_note(es-es,VS.90).gif" class="note" />Nota</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>El código siguiente muestra una ruta de un sitio Web.</p></td>
</tr>
</tbody>
</table>

``` vb
Private Const DIRECTORY_FILE_PATH As String = "C:\WebSites\VB_Web_Data_DataSets\"
```

``` csharp
private const string DIRECTORY_FILE_PATH = @"C:\WebSites\CS_Web_Data_DataSets\";
```

Para crear una propiedad que llene el conjunto de datos

  1. Cree una propiedad de sólo lectura denominada CustomerDataSet que devuelva una instancia del conjunto de datos. Asigne al método un modificador "Shared"[Visual Basic] o "static"[C#] para que se pueda llamar a la clase y a la propiedad directamente sin tener que crear ninguna instancia.
``` vb
Public Shared ReadOnly Property CustomerDataSet() As DataSet
Get

End Get
End Property
```

``` csharp
public static DataSet CustomerDataSet
{
get
{

}
}
```
  1. Este paso tiene dos opciones: una para usar con la clase DataSet de tipos declarados (que está disponible en proyectos Windows) y otra para usar con la clase DataSet genérica (que está disponible en sitios Web).

    • En los proyectos Windows en los que se utilice la clase DataSet con tipos declarados, en la cláusula Get de la propiedad CustomerDataSet, declare y cree una instancia de la clase CustomerDataSetSchema, la clase DataSet con tipos declarados generada desde el esquema del conjunto de datos de la sección anterior.

      Dim myDataSet As CustomerDataSetSchema = New
      CustomerDataSetSchema()
      
      CustomerDataSetSchema dataSet = new CustomerDataSetSchema();
      
    • En los proyectos de sitio Web que utilicen la clase DataSet genérica, en la cláusula Get de la propiedad CustomerDataSet, declare y cree una instancia de la clase DataSet y, a continuación, aplique el esquema XML a la instancia de DataSet. Es decir, pase la ruta del directorio de archivos de CustomerDataSetSchema.xsd como parámetro de cadena al método ReadXmlSchema() de la instancia de DataSet.

      Dim myDataSet As DataSet = New DataSet()
      myDataSet.ReadXmlSchema(DIRECTORY_FILE_PATH & "XMLSchema.xsd")
      
      DataSet dataSet = new DataSet();
      dataSet.ReadXmlSchema(DIRECTORY_FILE_PATH + "XMLSchema.xsd");
      
  2. Declare y cree una instancia de la clase OleDbConnection y pásele la constante CONNECTION_STRING como parámetro de método.

    Dim myOleDbConnection As OleDbConnection = New OleDbConnection(CONNECTION_STRING)
    
    OleDbConnection oleDbConnection = new OleDbConnection(CONNECTION_STRING);
    
  3. Declare y cree una instancia de la clase OleDbDataAdapter y pásele la constante QUERY_STRING y la instancia de OleDbConnection como parámetros de método.

    Dim myOleDbDataAdapter As OleDbDataAdapter = New OleDbDataAdapter(QUERY_STRING, myOleDbConnection)
    
    OleDbDataAdapter oleDbDataAdapter = new OleDbDataAdapter(QUERY_STRING, oleDbConnection);
    
  4. Llame al método Fill() de la instancia de OleDbDataAdapter y pásele la instancia de CustomerDataSetSchema y la constante DATATABLE_NAME.

<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images\z15yzzew.alert_note(es-es,VS.90).gif" class="note" />Nota</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>El método Fill() llena la tabla de datos especificada, en la instancia de DataSet, con los datos recuperados de la base de datos.</p></td>
</tr>
</tbody>
</table>

``` vb
myOleDbDataAdapter.Fill(myDataSet, DATATABLE_NAME)
```

``` csharp
oleDbDataAdapter.Fill(dataSet, DATATABLE_NAME);
```
  1. Para terminar la propiedad, devuelva la instancia de DataSet.
``` vb
Return myDataSet
```

``` csharp
return dataSet;
```

Se crea la propiedad CustomerDataSet y se puede llamar desde cualquier parte del proyecto.