2012-07-24 56 views
2

我用在C#工作的WinForms .NET4應用從SQL查詢C#

我的目標是填充從一個特定的SQL查詢圖表控件填充系列。

「選擇人高度」

簡單的查詢,但林不知道得到這個查詢結果到圖表控制的最佳途徑。

繼承人是我迄今爲止:

private void button1_Click(object sender, EventArgs e) 
     {   
      SqlConnection mainconnection = new SqlConnection("Data Source=commandhq;Initial Catalog=projecttest;Integrated Security=True"); 
      mainconnection.Open(); 
      string query = "SELECT height from persons"; 
      SqlCommand querycommand = new SqlCommand(query, mainconnection); 
      SqlDataReader querycommandreader = querycommand.ExecuteReader(); 


      Series thesqlresultsplease = new Series(); 

      //Populate series with results from the sql query 

      chart1.Series[0].XValueMember = thesqlresultsplease.XValueMember; //will this work? 

     } 

我的問題是:

我要如何從SqlDataReader的結果入編。 如果你知道更好的方法去做這個請讓我知道。我即將開始一個項目,所以這將是非常有益的。

在此先感謝

+0

你使用什麼圖表控件?它是微軟嗎? – 2012-07-24 11:03:42

回答

1

開始與此:

while (querycommandreader.Read()) 
{ 
    chart1.Series[0].Points.AddY(reader.GetDouble(0)); 
} 

根據您的 「高度」 列的SQL Server數據類型,你可能有與GetDouble部分的麻煩。所以,如果你這樣做,讓我知道數據類型,我們會做對。

Read()方法返回一個布爾值 - true如果仍然有記錄被讀取,false如果您已經傳遞了集合中的最後一個。這就是爲什麼你可以簡單地使用while(querycommandreader.Read()),並在循環的塊中對集合中的每一行進行操作。

該系列的'Points集合有一個AddY方法,只需要一個double,並添加一個點到系列。我們傳遞給它的雙精度來自讀者當前記錄的第零列。這可能是實現你想要的最簡單的方法。

+0

這工作。我只是使用reader.getint32來代替。感謝您的解釋 – Mat 2012-07-25 02:47:13

+0

@Mat點擊它的複選框將其標記爲答案。你將獲得2點聲望點。謝謝。 – hmqcnoesy 2012-07-25 10:34:11

0
while(querycommandreader.Read()) 
{ 
    chart1.Series[0].XValueMember = int.Parse(querycommandreader["height"]); 
}