public IEnumerable<IList<CellData>> Rows()
{
var factory = DbProviderFactories.GetFactory(_providerName);
using (var connection = factory.CreateConnection())
{
connection.ConnectionString = _connectionString;
connection.Open();
using (var command = connection.CreateCommand())
{
command.CommandText = _sql;
command.CommandType = CommandType.Text;
SqlParametersParser.ApplySafeParameters(command, _sql, _paramValues);
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
var result = new List<CellData>();
for (var i = 0; i < reader.FieldCount; i++)
{
var value = reader.GetValue(i);
var pdfCellData = new CellData
{
PropertyName = reader.GetName(i),
PropertyValue = value == DBNull.Value ? null : value,
PropertyIndex = i
};
result.Add(pdfCellData);
}
yield return result;
}
}
}
}
}