根据登录用户获取sql数据

时间:2012-10-07 01:11:09

标签: asp.net sql-server

我使用的是Visual Studio 2010专业版和SQL Server 2008 R2快递

我要做的是检测谁是登录用户并在gridview中显示他们的详细信息。登录用户使用了asp.net身份验证,我允许用户使用登录过程访问该页面,他们将“用户”角色设置为允许。管理员帐户可以从gridview查看帐户中的所有用户,但我还希望登录用户在成员部分中查看自己的详细信息。

这显示在代码隐藏

Protected Sub Page_Load(sender As Object, e As System.EventArgs)
Session("MemberDetails") = User.Identity.Name
End Sub

这是在主页

<asp:Gridview>
<Columns>
<asp:BoundField DataField="username" HeaderText="username" />
<$ many more fields here--$>
</Columns>
</asp:GridView>

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
SelectCommand="SELECT username, salutation, fname, sname, address, suburb, postcode, dayphone FROM member WHERE (username = @username)">
<SelectParameters>
<asp:SessionParameter Name="username" SessionField="MemberDetails" />
</SelectParameters>
</asp:SqlDataSource>

所有这些都应该有用,但我会得到一个空白页。

2 个答案:

答案 0 :(得分:1)

您的GridView标记不完整,尤其是DataSourceID="SqlDataSource1"

<asp:Gridview runat="server" ID="gvUsers" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="username" HeaderText="username" />
<$ many more fields here--$>
</Columns>
</asp:GridView>

答案 1 :(得分:0)

这个vb代码隐藏修复了我的问题:

Protected Sub SqlDataSource1_Selecting(ByVal sender As Object, ByVal e As SqlDataSourceSelectingEventArgs) Handles SqlDataSource1.Selecting
        e.Command.Parameters(0).Value = Me.User.Identity.Name
    End Sub