이것은 나를 미치게합니다. 그리고 지금은별로 중요하지 않더라도, 무슨 일이 일어나고 있는지 알고 싶습니다. 매개 변수 예외 선택
는 ClientSelect라는 저장 프로 시저가 한 I :SELECT * FROM dbo.Client
모든 것을 (! 내가 시도하고 무슨 일이 일어나고 있는지 알아 내기 위해 바로 다시 제거했습니다)
나는 또한이 그 안에 있다고 GridView가있는 ASP.NET 페이지. 그것의 데이터 소스는 다음과 같습니다 SelectCommand에이 SelectParameter에 대한 참조를하지 않고, 저장 프로 시저가 매개 변수를 요구하지 않는
가<asp:SqlDataSource ID="SQLClient" runat="server"
ConnectionString="<%$ ConnectionStrings:TestDBConnectionString %>"
SelectCommand="EXEC ClientSelect" >
<SelectParameters>
<asp:Parameter Name="ClientID" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
참고. 이 페이지가로드되지만 GridView가 비어 있습니다. 데이터가 반환되지 않습니다. 그것은 테이블의 모든 레코드를 반환
<asp:Parameter Name="ClientID" Type="Int32" DefaultValue="1" />
(지정된 기본 값으로 필터링하지 않음) : 나는 완전히 SelectParameter을 제거하거나 디폴트 값을 추가하는 경우
는 그러나처럼 보이도록.
SelectCommand 또는 저장 프로 시저에서 데이터를 참조하지 않아도 SelectParameter의 명시적인 코딩이 반환되지 않는 이유는 무엇입니까? 그것은 나에게 이해가되지 않는다!
좋은 점은 - 그것이에는 영향을주지 않았지만 나는 지금 그것을 추가 한 행동. 내 예제 코드가 인공적인 예제로 고통 받고 있지만 데이터 컨트롤 (예 : FormView) 내의 컨트롤이 해당 이름의 필드에 바인딩되어 있으면 쿼리 문자열이나 세션 변수에서 매개 변수를 지정하지 않을 것입니다. 이게 진짜 페이지라면 나도 마찬가지야.그런 다음 다시 그런 바인딩 된 컨트롤이 있다면 필자는 필연적으로 기본 값이되므로 아마 작동 할 것입니다. –
실제로 나는이 예외가 결코 실제로 자르지 않을 것이라고 추측합니다. 그러나 나는 단지 더미 페이지를 가지고 놀고 있었기 때문에 왜 그런지 궁금했습니다. –
조금 이상했지만, 나는 'SelectCommandType'을 정의하거나'SelectCommand = "EXEC spName"을 정의하지 않고 그 효과를 확신하지 못했습니다. 그래서 나는 그것을 제거했다 .. – Kaf