簡體   English   中英

C#Windows表單圖表控件-從csv文件綁定多個y值

[英]C# Windows Form Chart control - binding multiple y values from csv file

這是我第一次接觸數據綁定,因此我幾乎不了解所涉及的所有屬性和方法。 我想將多個系列綁定到csv文件,其中第1列是DateTime,第2到N列是雙精度。 我從WinFormsChartSamples中的示例開始,將單個Y值綁定到csv。 但是,不要相信我正在理解綁定多個Y值的方法。

原始代碼:

string mySelectQuery = "Select * from " + file;
string ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
path + ";Extended Properties=\"Text;HDR=No;FMT=Delimited\"";

OleDbConnection myConnection = new OleDbConnection(ConStr);

// create a database command on the connection using query
OleDbCommand myCommand = new OleDbCommand(mySelectQuery, myConnection);

// open the connection
myCommand.Connection.Open();

// create a database reader
OleDbDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);

// column 1 is a time value, column 2 is a double
// databind the reader to the chart using the DataBindXY method
chart1.Series[0].Points.DataBindXY(myReader, "1", myReader, "2");

以下作品:

myCommand.Connection.Open();
OleDbDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
chart1.Series[0].Points.DataBindXY(myReader, "1", myReader, "2");

myCommand.Connection.Open();
myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
chart1.Series[1].Points.DataBindXY(myReader, "1", myReader, "3");

myCommand.Connection.Open();
myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
chart1.Series[2].Points.DataBindXY(myReader, "1", myReader, "4");

我可以將以上內容放入循環中並遍歷所有Seri​​es,但是肯定有比多次讀取csv文件更好的方法嗎?

原來我確實找到了更好的方法:

string mySelectQuery = "Select * from " + file;
string ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path +
";Extended Properties=\"Text;HDR=No;FMT=Delimited\"";

OleDbConnection myConnection = new OleDbConnection(ConStr);
OleDbCommand myCommand = new OleDbCommand(mySelectQuery, myConnection);

chart1.DataSource = myCommand;

for (int i = 0; i < chart1.Series.Count; i++) {
    chart1.Series[i].XValueMember = "1";
    chart1.Series[i].YValueMembers = (i+2).ToString();
}
chart1.DataBind(); 

也許這會幫助別人...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM