गणना या तो शुरू नहीं हुई है या पहले ही समाप्त हो चुकी है

मैं एक आवेदन पर काम कर रहा हूं सबकुछ ठीक काम करता है लेकिन मुझे अपवाद मिल रहा है

Enumeration has either not started or has already finished.

यहां मेरा कोड है जो इस अपवाद उत्पन्न करता है।

 for (int i = 0; i < SelectedItems.Count; i++)
                {
                    lineDS = new DataSet();
                    datDs = new DataSet();
                    datDs = DatelineData(SelectedItems[i].ToString(), Starttime, Endtime, NUDTextBox, txtSensorLess, dtpStartDate, dtpEndDate);
                    lineDS =GraphlineDraw(SelectedItems[i].ToString(),Starttime,Endtime,NUDTextBox,txtSensorLess,dtpStartDate,dtpEndDate);
                    if (datDs.Tables[0].Rows.Count > 0 & lineDS.Tables[0].Rows.Count > 0)
                    {
                        var dates = (from dr in datDs.Tables[0].AsEnumerable()
                                     select new
                                     {
                                         date = dr.Field("DateRecorded"),
                                     }.date).ToList();

                        var Rate = (from dr in lineDS.Tables[0].AsEnumerable()
                                    select new
                                    {
                                        rate = dr.Field(SelectedItems[i])
                                    }.rate).ToList();
                        var datesDataSource = new EnumerableDataSource(dates);
                        datesDataSource.SetXMapping(x => dateAxis.ConvertToDouble(x));
                        var RateDataSource = new EnumerableDataSource(Rate);
                        RateDataSource.SetYMapping(y => y);
                        CompositeDataSource compositeDataSourceSenssor = new CompositeDataSource(datesDataSource, RateDataSource);
                        plotter.AddLineGraph(compositeDataSourceSenssor, colors[i], 1, SelectedItems[i]);
                        //Items.Add(new ItemVM((Brush)converter.ConvertFromString(colors[i].ToString()), SelectedItems[i]));
                    }
                    plotter.LegendVisible = false;
                    //listview.ItemsSource = Items;
                }

उपरोक्त कोड में

1.) चयनित इटम्स एक सरणीसूची है जिसमें इसमें कॉलम नाम होते हैं जिन्हें उपयोगकर्ता द्वारा रन टाइम पर चुना जाता है।

2.) डेटलाइनडाटा एक विधि है जो व्युत्पन्न कॉलम की तिथियां प्राप्त करने के लिए उपयोग कर रही है।

3.) GraphLineDraw एक विधि है जो कॉलम मान प्राप्त करने के लिए उपयोग कर रही है।

यहां मेरी डेटलाइनडेटा विधि है:

 private DataSet DatelineData(string items, string Starttime, string Endtime, string NUDTextBox, string txtSensorLess, string dtpStartDate, string dtpEndDate)
    {
        try
        {                               
                SqlParameter colomNamePrm, startdatePrm, EnddatePrm, StartPrm, EndPrm;                                        
                connection = new SqlConnection(settings);
                connection.Open();
                DataSet dateDs = new DataSet();
                command = new SqlCommand();
                command.Connection = connection;
                command.CommandType = CommandType.StoredProcedure;
                command.CommandText = "GetAvgDate";
                colomNamePrm = new SqlParameter("@ColumnName", SqlDbType.VarChar);
                startdatePrm = new SqlParameter("@StartDate", SqlDbType.VarChar);
                EnddatePrm = new SqlParameter("@EndDate", SqlDbType.VarChar);
                StartPrm = new SqlParameter("@Start", SqlDbType.VarChar);
                EndPrm = new SqlParameter("@End", SqlDbType.VarChar);
                colomNamePrm.Value =items;
                startdatePrm.Value = dtpStartDate +" " + Starttime;
                EnddatePrm.Value = dtpEndDate + " " + Endtime;
                StartPrm.Value = NUDTextBox;
                EndPrm.Value = txtSensorLess;
                command.Parameters.Add(colomNamePrm);
                command.Parameters.Add(startdatePrm);
                command.Parameters.Add(EnddatePrm);
                command.Parameters.Add(StartPrm);
                command.Parameters.Add(EndPrm);
                adapter.SelectCommand = command;
                adapter.Fill(dateDs); 

            return dateDs;
        }
        catch (Exception ex) { throw ex; }
        finally
        {
            command.Dispose();
            adapter.Dispose();
            connection.Close();
        }
    }

और यह GraphLineDraw विधि है

  private DataSet GraphlineDraw(string selecteditem, string Starttime, string Endtime, string NUDTextBox, string txtSensorLess, string dtpStartDate, string dtpEndDate)
    {
        try
        {                                              
                SqlParameter colomNamePrm, startdatePrm, EnddatePrm, StartPrm, EndPrm;                                         
                connection = new SqlConnection(settings);
                connection.Open();
                DataSet objds = new DataSet();
                command = new SqlCommand();
                command.Connection = connection;
                command.CommandType = CommandType.StoredProcedure;
                command.CommandText = "getAvgColumn";
                colomNamePrm = new SqlParameter("@ColumnName", SqlDbType.VarChar);
                startdatePrm = new SqlParameter("@StartDate", SqlDbType.VarChar);
                EnddatePrm = new SqlParameter("@EndDate", SqlDbType.VarChar);
                StartPrm = new SqlParameter("@Start", SqlDbType.VarChar);
                EndPrm = new SqlParameter("@End", SqlDbType.VarChar);
                colomNamePrm.Value =selecteditem;
                startdatePrm.Value = dtpStartDate + " " + Starttime;
                EnddatePrm.Value = dtpEndDate + " " + Endtime;
                StartPrm.Value = NUDTextBox;
                EndPrm.Value = txtSensorLess;
                command.Parameters.Add(colomNamePrm);
                command.Parameters.Add(startdatePrm);
                command.Parameters.Add(EnddatePrm);
                command.Parameters.Add(StartPrm);
                command.Parameters.Add(EndPrm);
                adapter.SelectCommand = command;
                adapter.Fill(objds);                    

            return objds;
        }
        catch (Exception ex) { throw ex; }
        finally
        {
            command.Dispose();
            adapter.Dispose();
            connection.Close();
        }
    }

कृपया इसके तत्काल मदद करें।

UPDATE : Exception Stack Trace

 at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
   at System.Collections.Generic.List`1.Enumerator.System.Collections.IEnumerator.get_Current()
   at Microsoft.Research.DynamicDataDisplay.DataSources.EnumerablePointEnumerator`1.GetCurrent(Point& p)
   at Microsoft.Research.DynamicDataDisplay.DataSources.CompositeDataSource.CompositeEnumerator.GetCurrent(Point& p)
   at Microsoft.Research.DynamicDataDisplay.DataSources.DataSourceHelper.d__0.MoveNext()
   at Microsoft.Research.DynamicDataDisplay.CoordinateTransformExtensions.d__0.MoveNext()
   at Microsoft.Research.DynamicDataDisplay.BoundsHelper.GetDataBounds(IEnumerable`1 points)
  at Microsoft.Research.DynamicDataDisplay.BoundsHelper.GetViewportBounds(IEnumerable`1 dataPoints, DataTransform transform)
  at Microsoft.Research.DynamicDataDisplay.LineGraph.UpdateCore()
 at Microsoft.Research.DynamicDataDisplay.ViewportElement2D.Update()
   at Microsoft.Research.DynamicDataDisplay.ViewportElement2D.OnOutputChanged(Rect newRect, Rect oldRect)
   at Microsoft.Research.DynamicDataDisplay.LineGraph.OnOutputChanged(Rect newRect, Rect oldRect)
   at Microsoft.Research.DynamicDataDisplay.ViewportElement2D.OnViewportPropertyChanged(Object sender, ExtendedPropertyChangedEventArgs e)
   at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
   at Microsoft.Research.DynamicDataDisplay.Viewport2D.RaisePropertyChangedEvent(DependencyPropertyChangedEventArgs e)
   at Microsoft.Research.DynamicDataDisplay.Viewport2D.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata,         EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue,        OperationType operationType)
 at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
   at System.Windows.DependencyObject.SetValue(DependencyPropertyKey key, Object value)
   at Microsoft.Research.DynamicDataDisplay.Viewport2D.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.FrameworkElement.OnRenderSizeChanged(SizeChangedInfo sizeInfo)
   at Microsoft.Research.DynamicDataDisplay.Viewport2D.OnRenderSizeChanged(SizeChangedInfo sizeInfo)
   at System.Windows.ContextLayoutManager.fireSizeChangedEvents()
   at System.Windows.ContextLayoutManager.UpdateLayout()
   at System.Windows.ContextLayoutManager.UpdateLayoutCallback(Object arg)
   at System.Windows.Media.MediaContext.InvokeOnRenderCallback.DoWork()
   at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
   at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
   at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate        catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at System.Threading.ExecutionContext.runTryCode(Object userData)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
 at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate        catchHandler)
   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32        numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFra
2
जोड़ा संपादित
विचारों: 1
@ कोडिंगबर्फील्ड ठीक है मैं इसे करूँगा :-)
जोड़ा लेखक Sunny, स्रोत
@ कोडिंगबर्फील्ड यह पहले से ही आवश्यक कोड के साथ पहले से ही छंटनी कोड है, लेकिन अगर आपको कोई संदेह है तो मैं साफ़ कर दूंगा।
जोड़ा लेखक Sunny, स्रोत
@ डेविड ब्रैबेंट हाँ मैं कोशिश करता हूँ।
जोड़ा लेखक Sunny, स्रोत
@daryal कृपया अभी अपडेट की जांच करें।
जोड़ा लेखक Sunny, स्रोत
@ कोडिंगबारफील्ड कृपया अभी अपडेट की जांच करें।
जोड़ा लेखक Sunny, स्रोत
कोशिश/पकड़/आखिरकार के बजाय का उपयोग कथन का उपयोग करें। और फेंक दें के साथ कैच किए गए अपवादों को फेंक न दें, एक साधारण फेंक करेगा। और यदि आप उन अपवादों को फिर से उखाड़ फेंकते हैं, तो बेहतर है कि उन्हें सामान्य रूप से पकड़ न लें ...
जोड़ा लेखक sloth, स्रोत
जोड़ा लेखक sloth, स्रोत
@ सनी मैंने अपना जवाब संपादित किया है
जोड़ा लेखक sloth, स्रोत
अपवाद किस लाइन में उठाता है?
जोड़ा लेखक daryal, स्रोत
कृपया पकड़ने की कोशिश करें ब्लॉक को हटाएं और देखें कि यह किस लाइन को अपवाद फेंक रहा है।
जोड़ा लेखक Eren Ersönmez, स्रोत
@ सनी कुछ चीजों में से एक है जिसे हम दूरस्थ रूप से कर सकते हैं। मैं अपनी स्थानीय मशीन पर कोड का परीक्षण नहीं कर सकता और इसमें कोई स्पष्ट त्रुटि नहीं है। यदि आप सर्वर से किसी डेटासेट की बजाय किसी सूची का उपयोग करने के लिए कोड को बदलते हैं तो हमें कुछ मिलता है जो हम वास्तव में स्थानीय रूप से परीक्षण/चला सकते हैं और तेज़ी से डीबग करने में आपकी सहायता कर सकते हैं।
जोड़ा लेखक CodingBarfield, स्रोत
क्या आपके पास कोई मल्टीथ्रेडिंग जा रहा है और क्या आप सुनिश्चित हैं कि कोई अनचाहे अपवाद नहीं हो रहा है। अपवाद के स्टैकट्रैक को भी पोस्ट करें।
जोड़ा लेखक CodingBarfield, स्रोत
क्या आप कोड के हिस्सों/सरल रेखाओं को तब तक हटा सकते हैं जब तक आपके पास कुछ ऐसा काम न हो। वर्तमान कोड दूरी से डीबग करना वाकई मुश्किल है।
जोड़ा लेखक CodingBarfield, स्रोत
@dkson एक स्पष्टीकरण के बिना एक सुझाव मदद नहीं करेगा। या तो समझाओ कि आप इसका सुझाव क्यों देते हैं या विषय पर रहते हैं।
जोड़ा लेखक CodingBarfield, स्रोत

2 उत्तर

जांचें कि आपके संग्रह तिथियां और दर में plotter.AddLineGraph को समान लंबाई है > compositeDataSourceSenssor

if (dates.Count() != Rate.Count())
{
   //serious problem:
   //won't work, since there are X values without Y values or vice versa
}

और, जैसा कि मैंने अपनी टिप्पणी में कहा था, आपको वास्तव में कथन का उपयोग करना चाहिए

private DataSet DatelineData(...)
{
    using(var connection = new SqlConnection(settings))
    {
         SqlParameter colomNamePrm, startdatePrm, EnddatePrm, StartPrm, EndPrm;                                        
         connection.Open();
         using (var command = connection.CreateCommand())
         {
             ....
             return dateDs;
         }
    }
}

गंदा कोशिश/पकड़/आखिरकार ब्लॉक से छुटकारा पाने के लिए स्वचालित रूप से का निपटान करें।

EDIT: I checked again and changed my answer accordingly.

7
जोड़ा
बस इसके लिए धन्यवाद देना चाहता था! इससे मुझे बहुत मदद मिली!
जोड़ा लेखक Bubo, स्रोत
हाँ तुम सही हो। धन्यवाद
जोड़ा लेखक Sunny, स्रोत

यह समस्या तब उत्पन्न होती है जब MovNext को अंतिम पंक्ति पर दो बार बुलाया जाता है। जब Enumerator समाप्त हो गया है MoveVext कहा जा रहा है।

0
जोड़ा
लेकिन कोड में मैं इसका उपयोग नहीं कर रहा हूं।
जोड़ा लेखक Sunny, स्रोत
जोड़ा लेखक Sunny, स्रोत
तो मैं इसे कैसे दूर कर सकता हूं?
जोड़ा लेखक Sunny, स्रोत
क्या आपने कोड में MoveNext को देखा है?
जोड़ा लेखक Sunny, स्रोत
आपके द्वारा प्रदान किए गए ट्रेस में यह 'माइक्रोसॉफ्ट पर है। शोध। डायनामिकडेटाडिस्प्ले.डेटा स्रोत। डेटासोर्स और ज़ेनज; हेल्पर। d_ और zwnj; _0.MoveNext() माइक्रोसॉफ्ट पर। रिसर्च। डायनामिकडेटा डिस्प्ले। कॉर्डिनेटट्रांसफॉर्मएक्स्ट और ज़ेनज; आयन। d__0.MoveNext() '
जोड़ा लेखक Ebad Masood, स्रोत
इसे परोक्ष रूप से कहा जा रहा है। आपके कोड के माध्यम से नहीं। मैंने जिन लाइनों को चिपकाया है, उनके नीचे ट्रेस विधियों की जांच करें और देखें कि इसे कैसा कहा जा रहा है। मेरे लिए कुछ प्रदर्शन विधि की तरह दिखता है।
जोड़ा लेखक Ebad Masood, स्रोत
कौन सी रेखा अपवाद पैदा कर रही है। आपके द्वारा लिखे गए प्रत्येक तरीके में जाएं और सटीक रेखा देखें।
जोड़ा लेखक Ebad Masood, स्रोत