Добавить сеанс к URL в asp.net

Я хочу создать сеанс в URL и назначить его значение из базы данных.

Например, у меня в настоящее время есть URL, создающий список согласно инструкции select.

Я хочу включить Favorite_id, но вместо этого назначить его сеансу.

Так что-то вроде:Session ["Fav"] = Favourite_ID;

ГАДЮКА.

<asp:DataList ID="DataList1" runat="server" ShowFooter="False" ShowHeader="False" Width="460px" CellPadding="1" Height="193px">
<ItemStyle Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False" Font-Underline="False" />
<ItemTemplate>
    <table class="auto-style2">
        <tr>
            <ul>
            <td class="auto-style3">
                <h6><li><asp:HyperLink Runat ="server" NavigateUrl ='<%#"RecipePage?id=" + DataBinder.Eval(Container.DataItem, "Recipe_ID").ToString()%>' ID="Hyperlink1"><%#DataBinder.Eval(Container.DataItem, "Recipe_Name")%></asp:HyperLink></asp></li></h6>
            </td>
            </ul>
        </tr>
    </table>
</ItemTemplate>

С#

private void loadRecipe()
        {

            SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)v11.0; AttachDbFilename=C:UsersDonaldDocumentsVisual Studio 2013ProjectsDesktopApplicationDesktopApplicationStudent_CB.mdf ;Integrated Security=True");
            con.Open();
            try
            {
                //Fetching top recipe     
                string query = ("SELECT * FROM Recipe LEFT JOIN Favourite on Recipe.Recipe_ID = Favourite.Recipe_ID WHERE Favourite.Student_ID = '"+UserID.Text+"' ORDER BY Recipe_Name");
                SqlDataAdapter da = new SqlDataAdapter(query, con);
                DataSet ds = new DataSet();
                da.Fill(ds);
                DataList1.DataSource = ds;
                DataList1.DataBind();
            }
            catch (Exception)
            {

                //catch exception here

            }

            con.Close();
        }

Также я просто проверяю, что я могу сделать в данный момент. Так что извините за плохую практику не использовать параметр и использовать Try-catch.

Это изменится, как только я пойму, могу ли я использовать сеанс так, как я надеюсь.

1 ответ

  1. Я использовал измененный текущий код, чтобы разрешить использование CommandArgument. В котором вызывается и создается сеанс.

    <asp:DataList ID="DataList1" runat="server" ShowFooter="False" ShowHeader="False" Width="460px" CellPadding="1" Height="193px">
    <ItemStyle Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False" Font-Underline="False" />
    <ItemTemplate>
        <table class="auto-style2">
            <tr>
                <ul>
                <td class="auto-style3">
    
                   <h6><li><asp:LinkButton runat="server" OnCommand="Call_Fav" CommandArgument='<%# Eval("Favourite_ID") %>' ID="bob" Text='<%#DataBinder.Eval(Container.DataItem, "Recipe_Name")%>' /></li></h6>
    
                </td>
                </ul>
            </tr>
        </table>
    </ItemTemplate>