Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于3个表的下拉依赖关系_C#_Asp.net - Fatal编程技术网

C# 基于3个表的下拉依赖关系

C# 基于3个表的下拉依赖关系,c#,asp.net,C#,Asp.net,我需要根据以前的dropdownlist值获取值。但我很困惑,因为有3个表是相互依赖的 dbo.Client ClientID(PK) | ClientName dbo.Client_POC_Bridge ClientID(FK) | POCID (FK) dbo.PointOfContact POCID(PK) | FName | LName 我有两个下拉列表: DropDownList1:我已经绑定了客户端的表信息 DropDownList2: I need FName and Lna

我需要根据以前的dropdownlist值获取值。但我很困惑,因为有3个表是相互依赖的

dbo.Client
ClientID(PK) | ClientName

dbo.Client_POC_Bridge
ClientID(FK) | POCID (FK)

dbo.PointOfContact
POCID(PK) | FName | LName
我有两个下拉列表:

DropDownList1:我已经绑定了客户端的表信息

DropDownList2: I need FName and Lname from dbo.PointOfContact
到目前为止,这是代码,但它不起作用

protected void DropDownList4_SelectedIndexChanged(object sender, EventArgs e)
        {

            DropDownList6.Items.Clear();
            DropDownList6.Items.Add(new ListItem("--Select Point Of Contact--", ""));
            DropDownList6.AppendDataBoundItems = true;

            String var = System.Configuration.ConfigurationManager.ConnectionStrings["KKSTechConnectionString"].ConnectionString;

            String strQuery = "select FirstName, POCID from PointOfCContact " +
                               "where ClientID=@ClientID";
            SqlConnection con = new SqlConnection(var);
            SqlCommand cmd = new SqlCommand();
            cmd.Parameters.AddWithValue("@ClientID",
                DropDownList3.SelectedItem.Value);
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = strQuery;
            cmd.Connection = con;
            try
            {
                con.Open();
                DropDownList6.DataSource = cmd.ExecuteReader();
                DropDownList6.DataTextField = "FirstName";
                DropDownList6.DataValueField = "POCID";
                DropDownList6.DataBind();
                if (DropDownList6.Items.Count > 1)
                {
                    DropDownList6.Enabled = true;
                }
                else
                {
                    DropDownList6.Enabled = false;

                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                con.Close();
                con.Dispose();
            }

        }

更改以下行…使用内部联接获取值

String strQuery ="select pof.FirstName, pof.POCID from PointOfCContact pof Inner Join Client_POC_Bridge cpb On pof.POCID =cpb.POCID where cpb.ClientID=@ClientID";

好的。。但它不是从dbo.Client搜索的。。我们是否应该加入到其中,然后搜索@ClientrID?如果你想检索FirstName和POCID,那么就没有必要使用dbo.Client,但是如果你也想使用“ClientName”,那么你必须加入dbo.Client才能得到它。。。