2009-08-18 8 views
0

J'utilise ObjectDataSource avec un contrôle ReportViewer 2008 et Linq to CSV. L'ODS a deux paramètres (le SQL est épelé dans un fichier XSD avec un adaptateur de table). Le Reportviewer prend beaucoup de temps pour afficher la sortie après avoir cliqué sur un bouton pour générer le rapport. C'est mon premier problème. Même si cela fonctionne (la plupart du temps), le temps de traitement m'inquiète, et les demandes suivantes ne semblent pas changer les résultats affichés à l'écran. Le problème suivant est que lorsque j'exporte l'ODS au format CSV, je reçois une exception de délai d'attente sur la méthode select de l'ODS (voir ci-dessous). Cela fonctionne pour ODS sans paramètres, mais il semble maintenant que j'ai ajouté des paramètres qu'il ne veut pas coopérer. Je suis fraîche d'idées, de pensées?ObjectDataSource.Select avec les paramètres Time Out

<asp:ObjectDataSource ID="obsGetDataAllCustomers" runat="server" 
    SelectMethod="GetDataAllCustomers" 

    TypeName="my.myAdapter.AllCustomers" 
    OldValuesParameterFormatString="original_{0}" > 
    <SelectParameters> 
     <asp:ControlParameter ControlID="StartDate" Name="Start" PropertyName="Text" 
      Type="DateTime" /> 
     <asp:ControlParameter ControlID="EndDate" Name="_End" PropertyName="Text" 
      Type="DateTime" /> 
    </SelectParameters> 
</asp:ObjectDataSource> 

Après bouton cliquez pour voir rapport -

rvAllCustomers.LocalReport.Refresh() 

Exporter au format CSV (en ajoutant les articles retournés à une liste qui est ensuite traitée par le code de travail) -

For Each dr As DataRow In CType(obs.Select(), DataView).Table.Rows 
    l.Add(New FullOrderOutput(dr)) 
Next 

Répondre

0

Malheureusement (ou heureusement je suppose que dans ce cas - des charges de données ici) je n'ai pas trouvé une solution directe à ce problème. Au lieu de cela, j'ai utilisé une requête (probablement en utilisant un SQLAdapter ou quelque chose comme ça - ça fait longtemps) et spécifié les paramètres manuellement dans ce bit de code, puis si je me souviens, fourni la source de données du rapport.