これは私を夢中にさせています。今はそれほど重要ではありませんが、何が起こっているのか知りたいです.
ClientSelect というストアド プロシージャがあります。
SELECT * FROM dbo.Client
それだけです (何が起こっているのかを理解するために、すぐにそれを取り除いてしまいました!)
GridView を含む ASP.NET ページもあります。その DataSource は次のようになります。
<asp:SqlDataSource ID="SQLClient" runat="server"
ConnectionString="<%$ ConnectionStrings:TestDBConnectionString %>"
SelectCommand="EXEC ClientSelect" >
<SelectParameters>
<asp:Parameter Name="ClientID" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
SelectCommand は SelectParameter を参照せず、ストアド プロシージャはパラメーターを要求しないことに注意してください。このページは読み込まれますが、GridView は空です - データが返されません。
ただし、 SelectParameter を完全に削除するか、次のようにデフォルト値を追加すると:
<asp:Parameter Name="ClientID" Type="Int32" DefaultValue="1" />
テーブル内のすべてのレコードを返します (指定された既定値によるフィルター処理は行いません)。
SelectCommand もストアド プロシージャもまったく参照していないのに、SelectParameter を明示的にコーディングするとデータが返されないのはなぜですか? 私には意味がありません!