Validateconnectionforexecute
Ich habe folgende Fehlermeldung und ich benutze petaPOCO. Warum habe ich diese Fehlermeldung und was mache ich falsch, diese Nachricht zu haben: System. InvalidOperationException wurde gefangen MessageThere ist bereits ein offener DataReader mit diesem Befehl verbunden, der zuerst geschlossen werden muss. SourceSystem. Data StackTrace: bei System. Data. SqlClient. SqlInternalConnectionTds. ValidateConnectionForExecute (Befehl SqlCommand) bei System. Data. SqlClient. SqlConnection. ValidateConnectionForExecute (String-Methode, SqlCommand-Befehl) bei System. Data. SqlClient. SqlCommand. ValidateCommand (String-Methode, Boolean async) bei System. Data. SqlClient. SqlCommand. RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String-Methode, DbAsyncResult-Ergebnis) bei System. Data. SqlClient. SqlCommand. RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String Methode) bei System. Data. SqlClient. SqlCommand. ExecuteScalar () in PetaPoco. Database. Insert (String tableName, String primaryKeyName, Boolean autoIncrement, Objekt poco) in C: DevCodeAPIModelsPetaPoco. cs: Zeile 1243 InnerException: gefragt Mar 1 12 bei 6 : 32 Hier ist eine hervorragende Erklärung, warum diese Ausnahme erhoben wird: Die Schlussfolgerung ist wie folgt: Da der SqlDataReader den Speicherstrom (Resultset) verfügbar hält, bis du den SqlDataReader explizit schließt, kannst du diese Ausnahme bekommen, wenn du versuchst, einen neuen Leser ohne zu erstellen Schließt die vorherige. Ändern Sie Ihren Code, um eine Benutzerkonstruktion zu haben, wann immer Sie einen SqlDataReader erstellen: Mit der Benutzung wird die Dispose () (die den Leser schließt) automatisch aufrufen, wenn die Schließung (Endung) erreicht ist. Wenn diese Ausnahme in petaPOCO angehoben wird, dann gibt es einen Bug in ihrem Code oder Sie verwenden den Code in einer nicht spezifizierten Weise. Was ist der beste Weg, um die gesamte Zeilenzahl eines ITable erhalten durch Reflexion erhalten Da Reflexion verwendet wird, System. Query. Count () ist nicht verfügbar. Der nächste Gedanke ist, ExecuteQueryltTgt (String, Objekt) zu verwenden. Ein Versuch, DataContext. ExecuteQueryltintgt aufzurufen (quotSELECT COUNT () von SomeTablequot) erzeugt einen Fehler: MessagequotGenericArguments0, System. Int32, auf System. Data. DLinq. Model. FieldAccessor2T, V verletzt die Einschränkung des Typs T. quot Der nächste Gedanke ist das Vielleicht kann DataContext. ExecuteCommand (string) aufgerufen werden, wenn es eine Möglichkeit gibt, ROWCOUNT auf COUNT () zu setzen. Aber anscheinend erlaubt T-SQL kein solches Unfug. Der nächste Gedanke besteht darin, einen IDbCommand und IDataReader aus DataContext. Connection zu erstellen. Dieser Ansatz wird in der unten angegebenen Methode CalculateSegmentTotal () gezeigt. Die Methode hebt eine InvalidOperationException-Sprichwort, quotThere ist bereits ein offener DataReader mit diesem Befehl zugeordnet, die zuerst geschlossen werden muss. quot. Manchmal wird die Ausnahme zunächst nicht erhöht, so dass CalculateSegmentTotal () einmal aufgerufen werden kann. Beim zweiten Aufruf von CalculateSegmentTotal () wird die Open DataReader-Ausnahme ausgelöst. Beachten Sie, dass in diesem Fall CalculateSegmentTotal () explizit IDataReader. Close () aufruft und trotzdem die Exception zum zweiten Mal umgestellt wird. Das macht mich fragen: Ist DataContext. Connection einfach nicht für die Öffentlichkeit gemeint zu verwenden Ein anderer Ansatz könnte sein, um eine separate Datenbank-Verbindung zu erstellen, um den DataReader auszuführen, aber das scheint weniger als ideal. Irgendwelche Gedanken Vielen Dank im Voraus, System. InvalidOperationException war unbehandelt MessagequotThere ist bereits ein offener DataReader, der mit diesem Befehl verknüpft ist, der zuerst geschlossen werden muss. quot SourcequotSystem. Dataquot StackTrace: bei System. Data. SqlClient. SqlInternalConnectionTds. ValidateConnectionForExecute (SqlCommand Befehl) bei System. Data. SqlClient. SqlConnection. ValidateConnectionForExecute (String-Methode, SqlCommand-Befehl) bei System. Data. SqlClient. SqlCommand. ValidateCommand (String-Methode, Boolean async) bei System. Data. SqlClient. SqlCommand. RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream , String-Methode, DbAsyncResult-Ergebnis) bei System. Data. SqlClient. SqlCommand. RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String-Methode) bei System. Data. SqlClient. SqlCommand. ExecuteReader (CommandBehavior Verhalten, String-Methode) bei System. Data. SqlClient. SqlCommand. ExecuteDbDataReader (CommandBehavior Verhalten) bei System. Datamon. DbCommand. System. Data. IDbCommand. ExecuteReader () bei Trtiya. Controls. DLinq. TablePanel. CalculateSegmentTotal () in C: ProjectsDLinqDataContextEditorExampleTrtiya. ControlsDLinqTablePanel. xaml. cs: Linie 104 bei Trtiya. Controls. DLinq. TablePanel. setTableData (Table Wert) in C: ProjectsDLinqDataContextEditorExampleTrtiya. ControlsDLinqTablePanel. xaml. cs: Linie 56 an Trtiya. Controls. DLinq. DataContextPage. mcbTablesSelectionChanged (Object sender, SelectionChangedEventArgs e) in C: ProjectsDLinqDataContextEditorExampleTrtiya. ControlsDLinqDataContextPage. xaml. cs: Zeile 82 bei System. Windows. Controls. SelectionChangedEventArgs. InvokeEventHandler (Delegieren genericHandler, Object genericTarget) bei System. Windows. RoutedEventArgs. InvokeHandler (Delegate Handler, Object Ziel) bei System. Windows. RoutedEventHandlerInfo. InvokeHandler ( Objektziel, RoutedEventArgs routedEventArgs) bei System. Windows. EventRoute. InvokeHandlersImpl (Objektquelle, RoutedEventArgs args, Boolean reRaised) bei System. Windows. UIElement. RaiseEventImpl (RoutedEventArgs args) bei System. Windows. UIElement. RaiseEvent (RoutedEventArgs e) bei System. Windows. ControlsboBox. OnSelectionChanged (SelectionChangedEventArgs e) bei System. Windows. Controls. Primitives. Selector. SelectionChanger. End () bei System. Windows. Controls. Primitives. Selector. SelectionChanger. SelectJustThisItem (Object item, Boolean assumeInItemsCollection) bei System. Windows. ControlsboBoxItem. OnMouseLeftButtonUp (MouseButtonEventArgs e) bei System. Windows. UIElement. OnMouseLeftButtonUpThunk (Objektsender, MouseButtonEventArgs e) bei System. Windows. Input. MouseButtonEventArgs. InvokeEventHandler (Delegieren genericHandler, Object genericTarget) bei System. Windows. RoutedEventArgs. InvokeHandler ( Delegate Handler, Objektziel) bei System. Windows. RoutedEventHandlerInfo. InvokeHandler (Objektziel, RoutedEventArgs routedEventArgs) bei System. Windows. EventRoute. InvokeHandlersImpl (Objektquelle, RoutedEventArgs args, Boolean reRaised) bei System. Windows. UIElement. ReRaiseEventAs (RoutedEventArgs args , RoutedEvent newEvent) bei System. Windows. UIElement. OnMouseUpThunk (Objektsender, MouseButtonEventArgs e) bei System. Windows. Input. MouseButtonEventArgs. InvokeEventHandler (Delegieren genericHandler, Object genericTarget) bei System. Windows. RoutedEventArgs. InvokeHandler (Delegate Handler, Object Ziel ) Bei System. Windows. RoutedEventHandlerInfo. InvokeHandler (Objektziel, RoutedEventArgs routedEventArgs) bei System. Windows. EventRoute. InvokeHandlersImpl (Objektquelle, RoutedEventArgs args, Boolean reRaised) bei System. Windows. UIElement. RaiseEventImpl (RoutedEventArgs args) bei System. Windows. UIElement. RaiseEvent (RoutedEventArgs args, Boolean vertrauenswürdig) bei System. Windows. Input. InputManager. ProcessStagingArea () bei System. Windows. Input. InputManager. ProcessInput (InputEventArgs-Eingabe) bei System. Windows. Input. InputProviderSite. ReportInput (InputReport inputReport ) Bei System. Windows. Interop. HwndMouseInputProvider. ReportInput (IntPtr hwnd, InputMode-Modus, Int32-Zeitstempel, RawMouseActions-Aktionen, Int32 x, Int32 y, Int32-Rad) bei System. Windows. Interop. HwndMouseInputProvider. FilterMessage (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Booleanamp behandelt) bei System. Windows. Interop. HwndSource. InputFilterMessage (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Booleanamp behandelt) bei MS. Win32.HwndWrapper. WndProc (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Booleanamp behandelt) bei MS. Win32.HwndSubclass. DispatcherCallbackOperation (Objekt o) bei System. Windows. Threading. ExceptionWrapper. InternalRealCall (Delegate callback, Object args, Boolean isSingleParameter) bei System. Windows. Threading. ExceptionWrapper. TryCatchWhen (Objektquelle, Delegate-Rückruf, Objekt args, Boolean isSingleParameter, Delegate catchHandler) bei System. Windows. Threading. Dispatcher. InvokeImpl (DispatcherPriority Priorität, TimeSpan Timeout, Delegate-Methode, Object args, Boolean isSingleParameter) bei System. Windows. Threading. Dispatcher. Invoke (DispatcherPriority Priorität, Delegate-Methode, Object arg) bei MS. Win32.HwndSubclass. SubclassWndProc (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) bei MS. Win32.UnsafeNativeMethods. DispatchMessage (MSGamp msg) bei System. Windows. Threading. Dispatcher. PushFrameImpl (DispatcherFrame-Frame) bei System. Windows. Threading. Dispatcher. PushFrame (DispatcherFrame-Frame) bei System. Windows. Threading. Dispatcher. Run () bei System. Windows. Application. RunInternal (Fensterfenster) bei System. Windows. Arlication. Run (Fensterfenster) bei System. Windows. Application. Run () bei DLinqDataContextEditorExample. MyApp. Main () in c: ProjectsDLinqDataContextEditorExampleDLinqDataContextEditorExampleDeBugMyApp. g.cs: Zeile 50 bei System. AppDomain. nExecuteAssembly (Assembly Assembly, String Args) bei System. AppDomain. ExecuteAssembly (String assemblyFile, Evidence assemblySecurity, String args) bei Microsoft. VisualStudio. HostingProcess. HostProc. RunUsersAssembly () bei System. Threading. ThreadHelper. ThreadStartContext (Objektstatus) bei System. Threading. ExecutionContext. Run (ExecutionContext executionContext, ContextCallback-Rückruf, Objektstatus) bei System. Threading. ThreadHelper. ThreadStart () IDbConnection-Verbindung mTableData. Tabelle. Kontext. Verbindung ConnectionState beforeConnectionState-Verbindung. Zustand IDataReader dataReader null int nRowCount 0 IDbCommand cmdCount Verbindung. CreateCommand () Wenn ich deine Situation verstehe, hast du eine Tabelle aus einem datacontext abgerufen, aber du weißt nicht genau was du hast. Sie wollen die Zeilenzahl abrufen. Heres eine Schlaf-beraubte Art und Weise zu gehen über eine ITable (ein QueryltTgt, tatsächlich), mit Reflexion, um die richtige CountltTgt, und ruft es (beachten Sie die unentgeltliche Verwendung von Linq, um die Methode Scannen): Mittwoch, 08. März 2006 9:46 AM Alle Antworten Wenn ich deine Situation verstehe, hast du einen Tisch aus einem Datacontext abgerufen, aber du weißt nicht genau was du hast. Sie wollen die Zeilenzahl abrufen. Heres eine Schlaf-beraubte Art und Weise zu gehen über eine ITable (ein QueryltTgt, tatsächlich), mit Reflexion, um die richtige CountltTgt, und ruft es (beachten Sie die unentgeltliche Verwendung von Linq, um die Methode Scannen): Mittwoch, 08. März 2006 9:46 Uhr
Comments
Post a Comment