MS Visual Studio 2010 でストアド プロシージャから asp:chart にデータをバインドする際に特定の問題が発生しました。
MS SQL Server にデータベースがあり、チャートに必要なデータを生成する手順を使用しています。生成されたデータは次のようになります。
表を見るとわかるように、最初のカテゴリ「1. verze」のカウントは 23 個です。
最後のピースがデータベースに挿入されたのは約 2 時間前であると言う必要があります。つまり、2 時間前には 22 個のピースしかなかったということです。
ここでの問題は、私の ASP チャートが、最新のデータではなく、2 時間前に関連していたカウントをまだ表示していることです。次のようになります。
誰かが問題の可能性について何か提案をしてくれましたか? 私の推測では、接続文字列のキャッシュのタイミングですが、接続文字列のそのような設定を見つけることができませんでした。
私のコードは次のようになります。
SqlConnection conn = new SqlConnection((String)ConfigurationManager.ConnectionStrings["Commercial"].ConnectionString);
SqlDataSourceTV.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
SqlDataSourceTV.SelectCommand = "sme.App_Graph_Vers";
SqlDataSourceTV.SelectParameters.Clear();
SqlDataSourceTV.SelectParameters.Add("Graph_type", Graph_type);
SqlDataSourceTV.SelectParameters.Add("AxisX", AxisX);
SqlDataSourceTV.SelectParameters.Add("AxisY", AxisY);
SqlDataSourceTV.SelectParameters.Add("Region", Region);
SqlDataSourceTV.SelectParameters.Add("Banker_navrhovatel", Banker_navrhovatel);
SqlDataSourceTV.SelectParameters.Add("Typ_verze", Typ_verze);
SqlDataSourceTV.SelectParameters.Add("VZN", VZN);
SqlDataSourceTV.SelectParameters.Add("Posledni_verze", Posledni_verze);
SqlDataSourceTV.SelectParameters.Add("Typ_splaceni", Typ_splaceni);
SqlDataSourceTV.SelectParameters.Add("Typ_procesu", Typ_procesu);
SqlDataSourceTV.SelectParameters.Add("Typ_financovani", Typ_financovani);
SqlDataSourceTV.SelectParameters.Add("Typ_rozhodnuti", Typ_rozhodnuti);
SqlDataSourceTV.SelectParameters.Add("Stav", Stav);
SqlDataSourceTV.SelectParameters.Add("Castka", Castka);
SqlDataSourceTV.SelectParameters.Add("DateFrom", DateFrom);
SqlDataSourceTV.SelectParameters.Add("DateTo", DateTo);
SqlDataSourceTV.SelectParameters.Add("Rok", Rok);
SqlDataSourceTV.DataBind();
if (!IsPostBack)
{ ChartTV.DataBind(); }
グラフに表示されるデータをフィルター処理するには、プロシージャーに追加されたパラメーター (変数) が必要です。