如何在SQL语句中调用User.Identity.GetUserId()?

时间:2014-10-13 19:57:04

标签: sql asp.net vb.net

语言:ASP.NET(VB)

我有以下代码:

<asp:SqlDataSource ... 
     SelectCommand="SELECT * FROM cust WHERE cust_id='C001';">

现在我想修改它以变成类似下面的伪代码:

<asp:SqlDataSource ... 
     SelectCommand="SELECT * FROM cust WHERE cust_id='" & User.Identity.GetUserId() & "';">

其中cust_idNVARCHAR(128),相当于AspNetUsers SQL Server数据库中的用户ID数据类型。

显然语法错误,因为语法不正确。我怎样才能使上述想法奏效?

谢谢。

1 个答案:

答案 0 :(得分:1)

将您的标记更改为:

<%@ Page Language="VB" AutoEventWireup="true" ... %>

<asp:SqlDataSource ConnectionString="YourConnStr" ID="SqlDataSource1" runat="server" SelectCommand="SELECT * FROM cust WHERE cust_id = @CustId">
    <SelectParameters>
        <asp:Parameter Name="CustId" DbType="String" />
    </SelectParameters>
</asp:SqlDataSource>

然后在您的Page_Load代码后面:

Sub Page_Load()
    SqlDataSource1.SelectParameters("CustId").DefaultValue = User.Identity.GetUserId()
End Sub