我正在使用 Visual Studio 2012 和 MySQL 构建我的第一个网站。这是我第一次真正使用它们中的任何一个,所以我的知识缺乏,但我正在慢慢学习。
我正在尝试开发一个网站,用于我们工作中的锁定/挂牌数据库。它最终将能够自动生成报告/标签,但我还没有做到这一点。我想做的是提供两个下拉列表,一个用于复杂,另一个用于机器(这些将用于对给定设备进行排序)。当用户选择特定的复合体时,我希望机器下拉列表仅限于特定于该复合体的机器。例如,我的 SQL 查询看起来像这样:
SELECT * FROM machine WHERE complex_id = complex.complex_id ORDER BY machine_name;
为了比较 machine.complex_id 和 complex.complex_id,我认为使用参数是正确的方法。
SELECT * FROM machine WHERE complex_id = @compid ORDER BY machine_name;
但是,我对在 SQL 语句中使用参数感到困惑。查看了以下页面:MSDN,我能够弄清楚如何在 SQL 语句中使用参数。但是,我不清楚如何实际创建参数。即使经过大量的谷歌搜索,我也没有发现任何真正突出的作为我想要完成的正确方法的方法。
编辑
<%@ Page Title="Lockout" Language="VB" MasterPageFile="~/Site.Master"
AutoEventWireup="true" CodeBehind="Lockout.aspx.vb" Inherits="Lockout.Lockout" %>
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<asp:DropDownList
ID="DropDownList_Complex"
runat="server"
DataTextField="complex_name"
DataSourceID="SqlDataSource_Complex"
DataValueField="complex_id"
AutoPostBack="True"
AppendDataBoundItems="True">
<asp:ListItem Value="" Selected="True">
Select
</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList
ID="DropDownList_Machine"
runat="server"
DataTextField="machine_name"
DataSourceID="SqlDataSource_Machine"
DataValueField="machine_id"
AutoPostBack="True"
AppendDataBoundItems="true">
<asp:ListItem Value="" Selected="True">
Select
</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource
ID="SqlDataSource_Complex"
runat="server"
ConnectionString="<%$ ConnectionStrings:lockoutConnectionString %>"
ProviderName="<%$ ConnectionStrings:lockoutConnectionString.ProviderName %>"
SelectCommand="SELECT complex_id, complex_name FROM complex ORDER BY complex_name">
</asp:SqlDataSource>
<asp:SqlDataSource
ID="SqlDataSource_Machine"
runat="server"
ConnectionString="<%$ ConnectionStrings:lockoutConnectionString %>"
ProviderName="<%$ ConnectionStrings:lockoutConnectionString.ProviderName %>"
SelectCommand="SELECT machine_id, machine_name, complex_id FROM machine ORDER BY machine_name">
</asp:SqlDataSource>