如何根据用户名从数据库中选择行?

时间:2011-05-20 00:39:57

标签: asp.net sql-server sqldatasource

在使用“配置数据源”对话框时,如何仅选择适用于当前登录用户的行?每行右侧都有一个用户名,这些用户名是在注册时为他们创建的。我正在使用内置的ASP.NET成员资格系统。无论如何要做一个选择当前用户用户名的Where子句吗?

3 个答案:

答案 0 :(得分:3)

HttpContext.Current.User.Identity.Name

为您提供与当前请求关联的Windows用户名。

要将其添加到where子句中,您必须向select命令添加参数

<asp:SqlDataSource ID="SqlDataSource1" runat="server" SelectCommand="Select * From tbl Where user = @user">
    <SelectParameters>
        <asp:Parameter Name="user" Type="String" />
    </SelectParameters>
</asp:SqlDataSource>

然后在代码中设置值:

SqlDataSource1.SelectParameters["user"].DefaultValue = HttpContext.Current.User.Identity.Name;

可能还有其他方法可以实现它,但这应该是最简单的方法之一。

Microsofts文章,用于在数据源上使用参数:http://msdn.microsoft.com/en-us/library/z72eefad.aspx

答案 1 :(得分:0)

您需要向SqlDataSource控件添加parameter

答案 2 :(得分:0)

您只需要将参数添加到sql数据源以从数据库中提取用户名和密码。

或者您可以创建一个存储过程来选择用户名和密码。 然后在后面的代码中传递用户名和密码的值。