public static DataSet convertDataReaderToDataSet(DbDataReader reader)
{
DataSet dataSet = new DataSet();
do
{
// Create new data table
DataTable schemaTable = reader.GetSchemaTable();
DataTable dataTable = new DataTable();
if (schemaTable != null)
{
// A query returning records was executed
for (int i = 0; i < schemaTable.Rows.Count; i++)
{
DataRow dataRow = schemaTable.Rows[i];
// Create a column name that is unique in the data table
string columnName = (string)dataRow["ColumnName"]; //+ « <C » + i + « /> »;
// Add the column definition to the data table
DataColumn column = new DataColumn(columnName, (Type)dataRow["DataType"]);
dataTable.Columns.Add(column);
}
dataSet.Tables.Add(dataTable);
// Fill the data table we just created
while (reader.Read())
{
DataRow dataRow = dataTable.NewRow();
for (int i = 0; i < reader.FieldCount; i++)
dataRow[i] = reader.GetValue(i);
dataTable.Rows.Add(dataRow);
}
}
else
{
// No records were returned
DataColumn column = new DataColumn(« RowsAffected »);
dataTable.Columns.Add(column);
dataSet.Tables.Add(dataTable);
DataRow dataRow = dataTable.NewRow();
dataRow[0] = reader.RecordsAffected;
dataTable.Rows.Add(dataRow);
}
}
while (reader.NextResult());
return dataSet;
}
Pour Info
public List<T_METHODOLOGIES> GetT_METHODOLOGIESsDEP()
{
try
{
List<T_METHODOLOGIES> lstT_METHODOLOGIESs = new List<T_METHODOLOGIES>();
DbCommand oDbCommand = DbProviderHelper.CreateCommand(@ »DECLARE @query VARCHAR(4000) DECLARE @metho VARCHAR(2000) SELECT @metho = STUFF
((SELECT DISTINCT ‘],[' + METHODOLOGIE
FROM T_METHODOLOGIES
ORDER BY '],[' + METHODOLOGIE FOR XML PATH('')), 1, 2, '') + ']‘
SET @query = ‘SELECT * FROM
(
SELECT T_DEPARTEMENTS.NOM AS DEPARTEMENT, T_REPARTITION.REPARTITION, T_METHODOLOGIES.METHODOLOGIE, YEAR(T_ETUDES.DATE) AS DATE
FROM T_REPARTITION INNER JOIN
T_ETUDES ON T_REPARTITION.ID_ETUDE = T_ETUDES.ID INNER JOIN
T_METHODOLOGIES ON T_ETUDES.ID_METHODOLOGIE = T_METHODOLOGIES.ID INNER JOIN
T_DEPARTEMENTS ON T_REPARTITION.ID_DEPARTEMENT = T_DEPARTEMENTS.ID
)t
PIVOT (SUM(REPARTITION) FOR METHODOLOGIE
IN (‘
+ @metho + ‘)) AS pvt’ EXECUTE (@query) », CommandType.Text);
DbDataReader oDbDataReader = DbProviderHelper.ExecuteReader(oDbCommand);
convertDataReaderToDataSet(oDbDataReader);
}