获取使用主/外键关系和C#引用的数据

时间:2014-12-22 16:20:24

标签: c# sql-server

我有一个有两个表的数据库

  1. dbo.Product
  2. Product Table enter image description here

    1. dbo.Orders
    2. Order Table

      它包含的数据

      dataProduct

      我在dbo.Product中引用ProductID的产品ID的dbo.Orders中有一个外键。关系图看起来像这样

      Relationship

      最终我想要做的是有一个下拉列表,其中包含不同的产品名称。当您选择产品名称时,它会通过更改我在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>
      

0 个答案:

没有答案