2016-04-03 46 views
0

Asp.net veya winForms'de son 10 dakika gösteren gerçek zamanlı bir veri grafiği oluşturmak istiyorum. .NET Gerçek Zamanlı Veri Tablosu

This is the image that i want to make it

Ben dizi eklendi ama datapoints eklemek olamazdı. Çok aradım ama başarısız oldum.

Bu arada infragistics kullanıyorum.

Aşağıdaki kod, rasgele sayılar üretir ve bu sayıları grafiklerde gösterir. Çalışır, ancak son numara i can see it. son 10 dakika değildir. Eğer doğru sorununuzu anlamak

private void Form1_Load(object sender, EventArgs e) 
    { 
     Timer timer = new Timer(); 
     timer.Interval = (1 * 1000); // 1 secs 
     timer.Tick += new EventHandler(timer_Tick); 
     timer.Start(); 
    } 

    private void timer_Tick(object sender, EventArgs e) 
    { 
     Random r = new Random(); 
     int rnd=r.Next(1, 150); 
     DataTable dt = new DataTable(); 

     dt.Columns.Add("Value", typeof(int)); 
     dt.Columns.Add("Date", typeof(DateTime)); 
     dt.Rows.Add(rnd, DateTime.ParseExact(DateTime.Now.ToLongTimeString(), "HH:mm:ss", null)); 

     NumericTimeSeries series = new NumericTimeSeries();  
     series.DataBind(dt, "Date", "Value"); 
     NumericTimeDataPoint ndp1 = new NumericTimeDataPoint(DateTime.Now, rnd, "ilk", false); 
     NumericTimeDataPoint ndp2 = new NumericTimeDataPoint(DateTime.Now, 5.0, "iki", false); 
     series.Points.Add(ndp1); 
     series.Points.Add(ndp2); 
     ultraChart2.Data.SwapRowsAndColumns = true; 
     ultraChart2.DataSource = dt; 
    } 

cevap

1

, her kene üzerinde

, bunun yerine kendisine ekleme değiştirilmesi sizin verilerdir.

Diziyi bir kez Form1_Load işleyicisinde başlatmayı deneyin ve her onaylamada, yeni bir DataTable oluşturmadan, diziye yeniden eklemeden, buna yeni değerler ekleyin.


şeyleri açıklığa kavuşturmak,

Sizin timer_Tick işleyicisi kod sadece 4 satır olmalıdır

:

private void timer_Tick(object sender, EventArgs e) 
{ 
    NumericTimeDataPoint ndp1 = new NumericTimeDataPoint(DateTime.Now, rnd, "ilk", false); 
    NumericTimeDataPoint ndp2 = new NumericTimeDataPoint(DateTime.Now, 5.0, "iki", false); 
    _series.Points.Add(ndp1); 
    _series.Points.Add(ndp2); 
} 

özel üye olarak _series beyan Form1_Load onu başlatmak işleyici ve gitmek için iyi olmalısınız.

+0

Bazı değişiklikler yaptım ancak hataları atar. Macuntayı düzenler misin, bu benim için harika olur. http://pastebin.com/vqDsNUv1 –

+0

Tahmin edeceğim ve problemin _NoticTimeSeries _series = new NumericTimeSeries(); _ yükleyicinin içinde olduğunu beyan ettiğinizi söyleyeceğim. Dışarıya özel bir üye olarak koyun. –

İlgili konular