Я пытаюсь использовать переменную из кода - позади страницы в sqlDataSource ГДЕ оператор. Я использую Членство. GetUser ().ProviderUserKey для получения UserId зарегистрированного пользователя и я хотел бы только показать запись, которые имеют этот UserId как внешний ключ. Как я могу записать SQL для этого?
Большое спасибо, Carl
Вот то, что я имею до сих пор:
SQL-запрос:
SelectCommand="SELECT [UserID], [CarID], [Make], [Model], [Year] FROM [Vehicle]"
Код - Позади
String user2 = ((Guid)Membership.GetUser().ProviderUserKey).ToString();
И я хочу добавить ГДЕ UserID = user2 к SQL-запросу.
Разобрался спасибо.
Я создал переменную сеанса, в которой сохранил ((Guid) Membership.GetUser (). ProviderUserKey), а затем использовал кнопку WHERE в мастере настройки источника данных, чтобы сопоставить ее с идентификатором пользователя.
Большое спасибо за ваши ответы.
Есть много способов взаимодействия с базой данных в 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
Удачи!