语言: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_id
是NVARCHAR(128)
,相当于AspNetUsers
SQL Server数据库中的用户ID数据类型。
显然语法错误,因为语法不正确。我怎样才能使上述想法奏效?
谢谢。
答案 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