Поделиться через


Занятие 3. Получение списка полей для определения отчета

Поскольку каждое определение отчета должно содержать список полей, отображающих данные отчета, необходимо создать этот список из запроса.

Создание списка полей

  1. Замените код метода GenerateFieldsList() в проекте следующим кодом:
Public Sub GenerateFieldsList()
   Dim command As SqlCommand
   Dim reader As SqlDataReader
   
   ' Executing a query to retrieve a fields list for the report
   command = m_connection.CreateCommand()
   m_commandText = "SELECT Person.CountryRegion.Name AS CountryName, Person.StateProvince.Name AS StateProvince " + "FROM Person.StateProvince " + "INNER JOIN Person.CountryRegion ON Person.StateProvince.CountryRegionCode = Person.CountryRegion.CountryRegionCode " + "ORDER BY Person.CountryRegion.Name"
   command.CommandText = m_commandText
   
   ' Execute and create a reader for the current command
   reader = command.ExecuteReader(CommandBehavior.SchemaOnly)
   
   ' For each field in the resultset, add the name to an array list
   m_fields = New ArrayList()
   Dim i As Integer
   For i = 0 To reader.FieldCount - 1
      m_fields.Add(reader.GetName(i))
   Next i
End Sub 'GenerateFieldsList
public void GenerateFieldsList()
{
   SqlCommand command;
   SqlDataReader reader;

   // Executing a query to retrieve a fields list for the report
   command = m_connection.CreateCommand();
   m_commandText = 
      "SELECT Person.CountryRegion.Name AS CountryName, Person.StateProvince.Name AS StateProvince " +
      "FROM Person.StateProvince " +
      "INNER JOIN Person.CountryRegion ON Person.StateProvince.CountryRegionCode = Person.CountryRegion.CountryRegionCode " +
      "ORDER BY Person.CountryRegion.Name";
   command.CommandText = m_commandText;
   
   // Execute and create a reader for the current command
   reader = command.ExecuteReader(CommandBehavior.SchemaOnly);
   
   // For each field in the resultset, add the name to an array list
   m_fields = new ArrayList();
   for (int i = 0; i <= reader.FieldCount - 1; i++)
   {
      m_fields.Add(reader.GetName(i));
   }
}

См. также

Задачи

Занятие 4. Создание кода для формирования файла определения отчета
Учебник. Создание кода на языке определения отчетов с помощью платформы .NET Framework

Справка и поддержка

Получение помощи по SQL Server 2005