2011-12-01 5 views
1

내 .aspx 페이지에 SqlDataSource SelectCommand가 있습니다.코드 블록을 사용하여 User.Identify.Name을 선택하십시오.

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" 
    SelectCommand="SELECT * FROM [UserResult]" 
    OnSelecting="SqlDataSource1_Selecting"> 
</asp:SqlDataSource> 

이 문은 테이블 UserResult의 데이터 목록을 grep합니다.

그러나 사용자에게 속한 특정 결과 만 나열하고 싶습니다.

나는 usernameUserResult 테이블의 열을 첨부하고, 나는이 같은 SQL 문을 형성하기 위해 시도했지만 사용자 User.Identity.nAME를 검색 할 것 같다

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:SODConnectionString %>" 
    SelectCommand="SELECT * FROM [UserResult] WHERE [username] LIKE 'User.Identity.Name'";" 
    OnSelecting="SqlDataSource1_Selecting"> 
</asp:SqlDataSource> 

은 내가 어떻게 할 수 알고있다 그것?

업데이트 : 커트에서 솔루션에서

, 나는 다음과 같은 구현하기 위해 노력했다 :

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:SODConnectionString %>" 
    SelectCommand="SELECT * FROM [UserResult] WHERE [username][email protected]" 
    OnSelecting="SqlDataSource1_Selecting"> 
    <SelectParameters> 
     <asp:Parameter Name="username" Type="String" DefaultValue='<%=User.Identity.Name %>' /> 
    </SelectParameters> 
</asp:SqlDataSource> 

그러나 나는 아직도 사용자 이름에 따라 데이터를 검색 할 수 없습니다입니다.

은 내가 username 매개 변수로 하드 코드에 사용자 이름을 시도하고 일 :

누구든지 도울 수? 이것은 문자열로 설정되어 있기 때문에

<asp:Parameter Name="username" Type="String" DefaultValue="james" /> 

답변

2

귀하의 문은 User.Identity.Name를 찾고 있습니다.

에 한번 사용하여 코드 블록 :

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:SODConnectionString %>" 
    SelectCommand="SELECT * FROM [UserResult] WHERE [username][email protected]" 
    OnSelecting="SqlDataSource1_Selecting"> 
    <SelectParameters> 
     <asp:Parameter Name="username" Type="String" DefaultValue='<%=User.Identity.Name %>' /> 
    </SelectParameters> 
</asp:SqlDataSource> 

Embedded Code Blocks in ASP.NET Web Pages

+5

[Bobby Tables] (http://xkcd.com/327/)를주의하십시오. – millimoose

+0

@Inerdial - 아주 좋은 지적입니다! 내 대답을 지금 변경하십시오. – Curt

+0

@Curt 감사합니다. 그러나 내 DataGrid는 코드를 변경하더라도 빈 데이터를 표시합니다. – gymcode

0

.aspx 파일에 기본 값을 선언 할 필요는 없습니다. 코드 숨김 파일에만 추가 할 수 있습니다.

protected void Page_Init(object sender, EventArgs e) 
{ 
    SqlDataSource1.InsertParameters["UserName"].DefaultValue = User.Identity.Name; 
} 
관련 문제