2017-04-26 12 views
2

をSQL Serverテーブルからデータを読み取るしようとしているコードはそれを行いますが、チャートはかなり右私は継続的にC#でチャートに

try 
{ 
    string valueX; 
    double valueY; 

    SqlConnection con = new SqlConnection(SmartHytte_G4); 
    string sqlQuery = "select * from LOGGTEMPSENSOR"; 

    SqlCommand sql = new SqlCommand(sqlQuery, con); 
    con.Open(); //Åpner oppkoblingen 

    SqlDataReader dr = sql.ExecuteReader(); 
    //chart.Series.Clear(); 

    if (dr.HasRows) 
    { 
     while (dr.Read() == true) 
     { 
      valueX = Convert.ToString(dr["TimeStamp"]); 
      valueY = Convert.ToDouble(dr["Value"]); 
      chart.Series["Temperatur"].Points.AddXY(valueX, valueY); 
     } 
    } 

    con.Close(); 
} 
catch (Exception error) 
{ 
    MessageBox.Show(error.Message); 
} 
のため申し訳ありません

ではありませんので、それはまた、古いデータを繰り返し、追加する前に、ひどい説明

+0

あなたの問題は、**あなたのチャートに**シリーズを追加するだけですが、以前のものはクリアしないことです。 'chart'とは何ですか?どこで定義しますか? –

+0

@KobyDouekどうしたらいいの? – Ragnar

答えて

1

クリアチャートシリーズ:

foreach(var series in chart.Series) { 
    series.Points.Clear(); 
} 
+0

タイそう!これは必要だったすべてでした – Ragnar

+0

喜んでそれは助けました:-) –

1

をあなたの元のコードに固執したい場合は、単に各リクエストでのみ最新のデータ・ポイントを取得することができます:

"select top 1 * from LOGGTEMPSENSOR ORDER BY TimeStamp DESC" 

ただし、これはデータベースよりも頻繁にグラフを更新することを前提としています。

より堅牢なソリューションは、前のチャートの更新で最後のデータポイントよりも新しいデータポイントのみを取得することです。

関連する問題