在SQL Query中使用Code-behind中的变量,asp.net C#

时间:2010-04-26 13:16:01

标签: c# asp.net sql

我正在尝试在sqlDataSource WHERE语句中使用代码隐藏页面中的变量。我正在使用Membership.GetUser()。ProviderUserKey来获取登录用户的UserId,我想只显示将此UserId作为外键的记录。我怎么能为此编写SQL?

非常感谢,Carl

这是我到目前为止所做的:

SQL查询:

SelectCommand="SELECT [UserID], [CarID], [Make], [Model], [Year] FROM [Vehicle]"

代码隐藏

String user2 = ((Guid)Membership.GetUser().ProviderUserKey).ToString();

我想将WHERE UserID = user2添加到SQL查询中。

2 个答案:

答案 0 :(得分:2)

在ASP.NET中有许多与数据库交互的方法。您还没有说明如何执行SQL,但这是一种可能的方法:

在.ASPX文件中:

<asp:SqlDataSource ID="UserSource" runat="server" ConnectionString="<%$ ConnectionStrings:SQLConn %>"
  SelectCommandType="StoredProcedure" SelectCommand="dbo.NPGetUserInfo">
  <SelectParameters>
    <asp:Parameter Name="UserID" DefaultValue="0" />
  </SelectParameters>
</asp:SqlDataSource>

在.VB代码后面的文件中(概念在C#中是相同的):

Protected Sub UserSource_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs) Handles UserSource.Selecting
    e.Command.Parameters.Item("@UserID").Value = Membership.GetUser().ProviderUserKey
End Sub
祝你好运!

答案 1 :(得分:0)

我想通了,谢谢。

我创建了一个会话变量,我在其中存储了((Guid)Membership.GetUser()。ProviderUserKey),然后使用配置数据源向导中的WHERE按钮将其与UserID进行比较。

非常感谢您的回复。