【问题标题】:User input query parameters in Visual StudioVisual Studio 中的用户输入查询参数
【发布时间】:2013-01-04 23:18:41
【问题描述】:

我是 Visual Studio 和 ASP.NET 的新手。

我正在为我在大学的数据库课程创建这个项目,我想使用 Visual Studio 使其基于 Web。所以我创建了我的站点,导入了数据库等,现在我想创建一个带有用户输入参数的查询。使用查询生成器,我创建了以下 SQL 语句:

SELECT [Column1], [Column2], Column3 
FROM [DataBaseTable]
WHERE ([Column1] = ?)

查询构建器的下一步是我需要定义参数源的地方。我发现我需要一个控制源,使用 DropDownList。我已经创建了列表项并通过控制选项将列表分配给参数。

所以,现在当我启动我的网站时,查询正在运行,从第一个列表项中获取值。问题是我想通过选择不同的列表项来动态更改查询值。我需要做什么才能做到这一点?

编辑:这是代码:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="AccessDataSource1" Height="269px" Width="923px">
    <Columns>
        <asp:BoundField DataField="Column1" HeaderText="Column1" SortExpression="Column1" />
        <asp:BoundField DataField="Column2" HeaderText="Column2" SortExpression="Column2" />
        <asp:BoundField DataField="Column3" HeaderText="Column3" SortExpression="Column3" />
    </Columns>
</asp:GridView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/Road.accdb" SelectCommand="SELECT [Column1], [Column2], [Column3] FROM [Второкласни пътища] WHERE ([Column1] = ?)">
    <SelectParameters>
        <asp:ControlParameter ControlID="DropDownList1" DefaultValue="" Name="?" PropertyName="SelectedValue" />
    </SelectParameters>
</asp:AccessDataSource>
<asp:DropDownList ID="DropDownList1" runat="server">
    <asp:ListItem>1</asp:ListItem>
    <asp:ListItem>2</asp:ListItem>
    <asp:ListItem>3</asp:ListItem>
</asp:DropDownList>

【问题讨论】:

    标签: asp.net database visual-studio-2010 controlparameter


    【解决方案1】:

    根据您的代码,我认为您可能只需要进行一点小改动。将“AutoPostBack="true" 添加到您的 DDL。我还会为您的 ListItems 提供显式值,以便更清楚。这样您可以将 ListItem 文本设置为有用的内容(无论数字应该在您的数据库中代表什么)。

    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true">
        <asp:ListItem Value="1">1</asp:ListItem>
        <asp:ListItem Value="2">2</asp:ListItem>
        <asp:ListItem Value="3">3</asp:ListItem>
    </asp:DropDownList>
    

    【讨论】:

    • 好的,我根据你的回答做了一些研究,我想我明白了。唯一我不知道的是在哪里写这个“背后的代码”?当我点击“查看代码”并发布它namespace RoadsProject { public partial class query1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } } } 它给出了一个编译错误。请您详细解释一下。
    • 后面的代码可能不是必需的,因为您正在执行完整的回发。如果您删除“OnSelectedIndexChanged="DoSomething"”,并更改下拉列表中的选择,您的查询是否按预期工作?
    • 没有。在页面加载时,它从第一个列表元素中获取值,如果我从 DropDownList 更改列表元素,则没有任何反应。
    • “将“AutoPostBack="true" 添加到您的 DDL。”谢谢老兄,这救了我的命!:)
    • 嘿,我可以再问你一个问题吗?当控件是文本框/输入(文本)或用户必须键入值的东西时呢?我需要做什么来获取查询参数的写入值?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    • 1970-01-01
    相关资源
    最近更新 更多