SessionParameters가 일반 매개 변수와 반대로 사용되는 방법을 모르겠다. 내가 뭘하려는 건가요 업데이트 또는 삽입 (PageLoad 이벤트 디버깅을 기반으로) 존재하는 것으로 알고 세션 변수 "StaffID"에서 값을 기반으로 내 데이터베이스에 레코드를 삽입합니다. 내 "StaffID"세션이 실제로 NULL (철저한 디버깅 후 찾은) 것으로 밝혀지며 Null 값이있는 테이블을 업데이트하려고 시도하는 것에 대한 예외가 발생합니다. 내의 SqlDataSource 따라서이다올바르게 asp.net에서 세션 매개 변수를 사용하는 방법
은 ...
<asp:SqlDataSource ID="SqlDataProgmDetails" runat="server" ConnectionString="<%$ ConnectionStrings:ATCNTV1ConnectionString %>"
UpdateCommand="UPDATE tblStudentProgramReg SET StaffModified = @StaffModified, DateModified = GETDATE() WHERE (ProgramEnrolmentID = @ProgramEnrolmentID)">
<UpdateParameters>
<asp:Parameter Name="EnrolmentDate" Type="DateTime" />
<asp:Parameter Name="StudentProgramNotes" Type="String" />
<asp:Parameter Name="TerminationDate" Type="DateTime" />
<asp:Parameter Name="StudProgEnrolStatusID" />
<asp:Parameter Name="QualificationCode" />
<asp:ControlParameter ControlID="gvPrograms" Name="ProgramEnrolmentID" Type="Int32" PropertyName="SelectedValue" />
<asp:SessionParameter Name="StaffModified" SessionField="StaffID" />
</UpdateParameters>
rs>
</asp:SqlDataSource>
내 위해 DetailsView를 업데이트 할 때 나는 지칠대로 지친 얻을 "문자열 또는 이진 데이터가 잘립니다. 문이 종료되었습니다." 오류.
나는 위의 SqlDataSource의 업데이트 단계에서 한 지점에 확실히 존재하는 "StaffID"세션 변수가 NULL이기 때문에 이러한 상황이 발생하고 있음을 알고 있습니다.
내가 코드 숨김에서 값을로드 강제로 알게되었다 주위 유일한 방법 ...
protected void SqlDataProgmDetails_Updating(object sender, SqlDataSourceCommandEventArgs e)
{
if (Session["StaffID"] != null)
{
e.Command.Parameters[5].Value = Session["StaffID"].ToString().Trim();
}
}
protected void SqlDataProgmDetails_Inserting1(object sender, SqlDataSourceCommandEventArgs e)
{
if (Session["StaffID"] != null)
{
e.Command.Parameters[8].Value = Session["StaffID"].ToString().Trim();
}
}
하지만 내가 왜이 일을해야합니까?
내 ASP 페이지의 SessionParameter 요청에 따라 StaffID가 자동으로로드되어야한다고 생각했을 것입니다.
내가 말했듯이, SessionParameters (또는 세션 변수가 작동하는 방식)가 일반적으로 어떻게되는지 잘 모르겠습니다. 그렇다면이 코드가 작동하도록 코드 비움을 사용해야하는 이유를 설명해 주시면 감사하겠습니다.
는
감사합니다. Elad. 그래서 여러분이 말한 것은 코드 숨김에서 위에서했던 것처럼 세션 변수를 복원하는 것이 실제로 유일한 방법이라는 것입니다. 따라서 논리적이며 수용 할 수 있습니까? – Fandango68
예,이 사용법은'WebForms' 이야기의 큰 부분입니다. 이것은 정확하게 세션을 위해 설계된 것입니다. –
감사합니다. 당신의 대답은 그 때입니다. – Fandango68