2009-08-18 13 views
0

Ich verwende eine ObjectDataSource mit einem 2008 ReportViewer Steuerelement und Linq zu CSV. Das ODS hat zwei Parameter (das SQL wird in einer XSD-Datei mit einem Tabellenadapter geschrieben). Der Reportviewer benötigt sehr viel Zeit, um die Ausgabe zu rendern, nachdem auf eine Schaltfläche geklickt wurde, um den Bericht zu generieren. Das ist mein erstes Problem. Obwohl es (meistens) funktioniert, beunruhigt mich die Verarbeitungszeit, und nachfolgende Anfragen scheinen die auf dem Bildschirm angezeigten Ergebnisse nicht zu verändern. Das nächste Problem ist, dass ich, wenn ich das ODS in CSV exportieren möchte, eine Auszeit-Ausnahme für die select-Methode des ODS bekomme (siehe unten). Das funktioniert für ODS ohne Parameter, aber jetzt scheint es, als hätte ich Parameter hinzugefügt, die nicht kooperieren wollen. Ich bin frisch aus Ideen, irgendwelche Gedanken?ObjectDataSource.Select mit Parametern Timeout

<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> 

Nach Schaltfläche klicken Bericht anzuzeigen -

rvAllCustomers.LocalReport.Refresh() 

Export nach CSV (Hinzufügen die Elemente in einer Liste zurückgegeben, die dann von funktionierenden Code verarbeitet wird) -

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

Antwort

0

Leider (oder zum Glück nehme ich in diesem Fall - viele Daten hier an - ich habe keine direkte Lösung für dieses Problem gefunden. Stattdessen habe ich eine Abfrage verwendet (wahrscheinlich mit einem SQLAdapter oder so ähnlich - es ist eine Weile her) und die Parameter manuell in diesem Codeabschnitt angegeben, und wenn ich mich erinnere, lieferte die Datenquelle des Berichts den Adapter.