在我的代码后面我有一个函数getEmail()返回一个电子邮件地址,在前端我有一个sql数据源select命令,根据电子邮件地址获取信息。截至目前,电子邮件地址是硬编码我想知道如何将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>
我尝试将&lt;%= getEmail()%&gt;而不是电子邮件,但没有运气
<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>
答案 0 :(得分:1)
要参数化查询,请按如下所示修改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()