2

私は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 からシリーズに結果を取得するにはどうすればよいですか。これについてもっと良い方法を知っているなら、私に知らせてください。プロジェクトを開始しようとしているので、これは非常に役に立ちます。

前もって感謝します

4

2 に答える 2

1

これから始めます:

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

「HEIGHT」列の Sql Server データ型によっては、GetDoubleパーツに問題がある可能性があります。その場合は、データ型をお知らせください。適切に対応いたします。

このRead()メソッドはブール値を返します -trueまだ読み取られているレコードがあるfalse場合、セット内の最後のレコードを渡している場合。そのため、ループのブロックで単純に and を使用while(querycommandreader.Read())して、セット内の各行で何かを行うことができます。

シリーズのPointsコレクションにはAddY、double を取得してシリーズにポイントを追加するだけのメソッドがあります。それに渡す double は、リーダーの現在のレコードの列 0 から取得されます。それはおそらくあなたが望むものを達成するための最も簡単な方法です.

于 2012-07-24T12:44:46.480 に答える
0
while(querycommandreader.Read())
{
   chart1.Series[0].XValueMember = int.Parse(querycommandreader["height"]);
}
于 2012-07-24T11:38:17.120 に答える