从SQL查询中填充一系列C#

时间:2012-07-24 11:02:01

标签: c# sql winforms charts

我正在使用C#winforms .NET4应用程序

我的目标是从特定的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的结果导入系列。 如果您知道更好的解决方法,请告诉我。我即将开始一个项目,所以这将非常有用。

提前致谢

2 个答案:

答案 0 :(得分:1)

从这开始:

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

根据“HEIGHT”列的Sql Server数据类型,您可能无法使用GetDouble部分。所以如果你这样做,请告诉我数据类型,我们会做对的。

Read()方法返回布尔值 - true如果仍有读取记录,false如果你已经通过了集合中的最后一个。这就是为什么你可以简单地使用while(querycommandreader.Read())并在循环块中对集合中的每一行做一些事情。

系列“Points集合有一个AddY方法,只需要加倍并为该系列添加一个点。我们传递给它的双重来自读者当前记录的第0列。这可能是完成你想要的最简单方法。

答案 1 :(得分:0)

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