0

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(); }

グラフに表示されるデータをフィルター処理するには、プロシージャーに追加されたパラメーター (変数) が必要です。

4

1 に答える 1

1

私はばかです、私は実際には非常に簡単な解決策を見つけました。EnableCaching と呼ばれる SqlDataSource のパラメーターがあり、私がしなければならなかった唯一のことは、EnableCaching を false に設定することでした。

<asp:SqlDataSource ID="SqlDataSourceTV" runat="server" EnableCaching="false" DataSourceMode ="DataSet" ConnectionString="<%$ ConnectionStrings:Commercial %>"> </asp:SqlDataSource>
于 2015-08-12T09:12:27.080 に答える