我有一个有两个表的数据库
它包含的数据
我在dbo.Product中引用ProductID的产品ID的dbo.Orders中有一个外键。关系图看起来像这样
最终我想要做的是有一个下拉列表,其中包含不同的产品名称。当您选择产品名称时,它会通过更改我在aspx页面上的标签文本来显示哪些订单包含该ProductID。
以下是我填充下拉列表的方法
protected void Page_Load(object sender, EventArgs e)
{
PopulateDropDown();
}
public void PopulateDropDown()
{
SqlCommand cmd = new SqlCommand("SELECT * FROM [Product]", new SqlConnection(ConfigurationManager.AppSettings["ConnString"]));
cmd.Connection.Open();
SqlDataReader ddlValues;
ddlValues = cmd.ExecuteReader();
showOrders.DataSource = ddlValues;
showOrders.DataValueField = "ProductName";
showOrders.DataTextField = "ProductName";
showOrders.DataBind();
cmd.Connection.Close();
cmd.Connection.Dispose();
}
当我以前想做这样的事情时,我使用了INNER JOIN。但是,我很困惑我是否需要再次使用该语句。当我使用INNER JOIN时,我不需要有两个表之间的主键关系的外键。有人可以向我解释我需要做些什么来实现我的目标吗?这是我以前做过的过程吗?如果是这样,为什么我甚至需要建立关系呢?
这是我的ASPX页面
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="showOrders" AutoPostBack="true" runat="server" OnSelectedIndexChanged="showOrders_SelectedIndexChanged"></asp:DropDownList>
<asp:Label ID="showContainingOrders" runat="server"></asp:Label>
</div>
</form>
</body>