我正在使用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的结果导入系列。 如果您知道更好的解决方法,请告诉我。我即将开始一个项目,所以这将非常有用。
提前致谢
答案 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"]);
}