如何通过使用会话仅显示首选数据来使用sqldatasource?

问题描述

我做sqldatasource的通常方法是这样。通常只是以表格形式显示所有论坛。

<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
    ConnectionString="<%$ ConnectionStrings:elibraryDBConnectionString %>"
    SelectCommand="SELECT [forum_id],[forum_topic],[forum_description],[forum_status],[company_name],[replies_count],[publish_date],[publisher_name],[forum_img_link],[moderator_name] FROM [forum_accept_tbl]">
</asp:SqlDataSource>

但是,我不想显示所有论坛,而只显示一个具有会话论坛ID的论坛。以下是对我不起作用的代码。

<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
    ConnectionString="<%$ ConnectionStrings:elibraryDBConnectionString %>" 
    SelectCommand="SELECT [forum_id],[moderator_name] FROM [forum_accept_tbl] WHERE [Forum_id] = Session["Forum_id"]"></asp:SqlDataSource>

我尝试添加WHERE,但无法识别会话。这是在我的forum.aspx代码btw上。是否应该在forum.aspx.cs中进行更改?我还是asp.net的新手,我认为这是一个简单的错误,但我希望我能学到更多。

编辑后的当前进度。在阅读了一些建议的有用文档之后。以下是我当前的进度以及显示的当前错误。

                     <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:elibraryDBConnectionString %>" SelectCommand="SELECT [forum_id],[moderator_name] FROM [forum_accept_tbl] WHERE ([forum_id] = @forum_id)"> <SelectParameters> <asp:SessionParameter Name="forum_id" SessionField="forum_id" Type="Int32" /> </SelectParameters></asp:SqlDataSource>
                     <div class="col">
                        <asp:GridView class="table table-striped table-bordered" ID="GridView2" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource2" OnSelectedIndexChanged="GridView2_SelectedIndexChanged">
                           <Columns>

我已经检查了该会话,它运行良好(带有正确的会话论坛ID)。但是,在我运行它并单击“链接”按钮后,它在下面显示此错误:

说明:在为该请求提供服务所需的资源的编译过程中发生错误。请查看以下特定的错误详细信息,并适当地修改您的源代码。

编译器错误消息:CS1061:“ forum_aspx”不包含“ GridView2_SelectedIndexChanged”的定义,并且无法找到接受类型为“ forum_aspx”的第一个参数的可访问扩展方法“ GridView2_SelectedIndexChanged”您缺少using指令或程序集引用吗?)

源错误:第44行



Line 42:                      <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:elibraryDBConnectionString %>" SelectCommand="SELECT [forum_id],[moderator_name] FROM [forum_accept_tbl] WHERE ([forum_id] = @forum_id)"> <SelectParameters> <asp:SessionParameter Name="forum_id" SessionField="forum_id" Type="Int32" /> </SelectParameters></asp:SqlDataSource>
Line 43:                      <div class="col">
Line 44:                         <asp:GridView class="table table-striped table-bordered" ID="GridView2" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource2" OnSelectedIndexChanged="GridView2_SelectedIndexChanged">
Line 45:                            <Columns>
Line 46:                               <asp:BoundField DataField="forum_id" HeaderText="forum_id" ReadOnly="True" SortExpression="forum_id" InsertVisible="False" >

因此,在我的情况下,我获取了会话论坛ID(即“ 14”),并且我期望它应该从数据库中获取14,并将其显示在页面上。但是,存在此错误。有人可以解释吗?我也阅读了一些文档,并按照每个步骤进行操作。我还是个新人,想学什么。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)