Visual Studio 2012 と MySQL を使用して最初の Web サイトを構築中です。どちらも本格的に使うのは初めてなので知識不足ですが、少しずつ覚えていきます。
職場のロックアウト/タグアウト データベースに使用する Web サイトを開発しようとしています。最終的にはレポート/タグを自動的に生成する機能が搭載される予定ですが、私はまだそこまで到達していません. 私ができるようにしたいのは、複合体用とマシン用の 2 つのドロップダウンリストを提供することです (これらは、指定されたデバイスの並べ替えに使用されます)。ユーザーが特定のコンプレックスを選択したときに、マシンのドロップダウン リストをそのコンプレックスに固有のマシンに限定したいと考えています。たとえば、私の 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>