使用 VB 函数作为 SqlDataSource SelectParameter 值
Using a VB Function as a SqlDataSource SelectParameter value
在我后面的代码中,我有一个函数 getEmail() returns 一个电子邮件地址,在前端我有一个 sql 数据源选择命令,它根据电子邮件地址获取信息。到目前为止,电子邮件地址是硬编码的,我想知道如何将 getEmail() 放入 selectcommand。
VB
Public Function getEmail() As String
Dim x As PublicProfile
x= UserProfileContext.Current.UserInfo
Return x.LoginName.ToString()
End Function
前端
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ApplicationServices %>" SelectCommand="select Count(ID)nums from revs where Email='jon@usa.com' and Source='PUB' and Status='a'"></asp:SqlDataSource>
我尝试用 <% =getEmail() %> 代替电子邮件,但没有成功
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ApplicationServices %>" SelectCommand="select Count(ID)nums from revs where Email='<% =getEmail() %>' and Source='PUB' and Status='a'"></asp:SqlDataSource>
要参数化您的查询,请按如下方式修改您的 SqlDataSource 标记以添加“@Email”SelectParameter:
<asp:SqlDataSource>
ID="SqlDataSource1"
runat="server"
ConnectionString="<%$ ConnectionStrings:ApplicationServices %>"
SelectCommand="select Count(ID)nums from revs where Email=@EMail and
Source='PUB' and Status='a'">
</asp:SqlDataSource>
在您的 codebehind/Page_Load() 中,尝试添加以下内容(在您的绑定之前)以将一个值放入标记中定义的 SelectParameter 中,该标记(反过来)由您的函数提供:
SqlDataSource1.SelectParameters("Email").DefaultValue = getEmail()
在我后面的代码中,我有一个函数 getEmail() returns 一个电子邮件地址,在前端我有一个 sql 数据源选择命令,它根据电子邮件地址获取信息。到目前为止,电子邮件地址是硬编码的,我想知道如何将 getEmail() 放入 selectcommand。
VB
Public Function getEmail() As String
Dim x As PublicProfile
x= UserProfileContext.Current.UserInfo
Return x.LoginName.ToString()
End Function
前端
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ApplicationServices %>" SelectCommand="select Count(ID)nums from revs where Email='jon@usa.com' and Source='PUB' and Status='a'"></asp:SqlDataSource>
我尝试用 <% =getEmail() %> 代替电子邮件,但没有成功
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ApplicationServices %>" SelectCommand="select Count(ID)nums from revs where Email='<% =getEmail() %>' and Source='PUB' and Status='a'"></asp:SqlDataSource>
要参数化您的查询,请按如下方式修改您的 SqlDataSource 标记以添加“@Email”SelectParameter:
<asp:SqlDataSource>
ID="SqlDataSource1"
runat="server"
ConnectionString="<%$ ConnectionStrings:ApplicationServices %>"
SelectCommand="select Count(ID)nums from revs where Email=@EMail and
Source='PUB' and Status='a'">
</asp:SqlDataSource>
在您的 codebehind/Page_Load() 中,尝试添加以下内容(在您的绑定之前)以将一个值放入标记中定义的 SelectParameter 中,该标记(反过来)由您的函数提供:
SqlDataSource1.SelectParameters("Email").DefaultValue = getEmail()