4つのラジオボタンがあります。それらのそれぞれは、使用したい入力温度の1つのタイプ(DB内の列)に対応しています。グラフに複数行をプロットする
私はすでに持っているもの: ラジオボタンを1つ選択し+ Loadを押すとグラフがプロットされます。もう一度このボタン(または他のラジオボタン)を選択すると、元のグラフのシーケンスでプロットされます。
私は助けが必要です: "Load"ボタンを押すたびに、そのラインは既存のグラフに "追加"されます。言い換えれば、同じグラフに4つの異なる行があり、それぞれが選択して「ロード」を押したラジオボタンを表しています。
コード:
private void BtnLoadDataToGraph_Click(object sender, EventArgs e)
{
string column_to_use = "";
double column_percentage_XX = 0;
double column_percentage_XX = 0;
string ReceiveNameFile = CboxReceiveNameFile.Text;
if (RadioButtonStartXXTemp.Checked)
column_to_use = "START_XX_TEMP";
else if (RadioButtonStartXXTemp.Checked)
column_to_use = "START_XX_TEMP";
if (RadioButtonAvgTemp.Checked)
column_to_use = "(START_XX_TEMP + START_XX_TEMP)/2";
else
{
column_percentage_XX = Int32.Parse(TextBoxXXPercentage.Text);
column_percentage_XX = (Convert.ToDouble(column_percentage_XX)/100);
column_percentage_XX = Int32.Parse(TextBoxXXPercentage.Text);
column_percentage_XX = (Convert.ToDouble(column_percentage_XX)/100);
column_to_use = "(START_XX_TEMP*" + column_percentage_XX + ")+(START_XX_TEMP*" + column_percentage_XX + ")";
}
SqlConnection conDatabase = new SqlConnection("XXXXXX");
SqlCommand cmdDatabase = new SqlCommand("select " + column_to_use + " AS temp, SUBSTRING (header.TIME,CHARINDEX(' ',header.TIME,1),len(header.TIME)) as time,CONVERT(datetime,header.TIME,101) as new_time, REVERSE(SUBSTRING(REVERSE(fnames.PATH_NAME),0,CHARINDEX('\\\',REVERSE(fnames.PATH_NAME)))) as folder_name from TBL_DATA_TYPE_RO_HEADER header,TBL_FILE_NAMES fnames,TBL_PROGRAM program where program.PK_ID_TBL_PROGRAM = fnames.FK_ID_TBL_PROGRAM and fnames.PK_ID_TBL_FILE_NAMES = header.FK_ID_TBL_FILE_NAMES and REVERSE(SUBSTRING(REVERSE(fnames.PATH_NAME),0,CHARINDEX('\\\',REVERSE(fnames.PATH_NAME))))='" + ReceiveNameFile + "' order by new_time", conDatabase);
SqlDataReader myReader;
try
{
conDatabase.Open();
myReader = cmdDatabase.ExecuteReader();
while (myReader.Read())
{
this.ChartTempVsTime.Series["TimeVsTemp"].Points.AddXY(myReader["time"].ToString(), myReader["temp"].ToString());
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
私はこれを行うことができる方法の任意のアイデア?私は多分Points.AddXYの代わりに "Points.Aggregate"を使うことを考えていました。しかし、私はそれが正しい経路だとは思っていません。なぜなら、それぞれのラジオボタンには異なる色の線があるからです。
どのようなヘルプやヒントも大歓迎です!
それに新しいポイントを追加していないが、おそらくあなたの代わりに1つだけの4シリーズを持っていたいですか? – TaW
ちょっと@TaW、はい、私は同じグラフにいくつかの行(値のいくつかのシリーズ)を持っています –
さて、さらにシリーズを追加し、彼らのrespetiveポイントコレクションに追加!これはむしろまっすぐです.. – TaW