C# 基于3个表的下拉依赖关系
我需要根据以前的dropdownlist值获取值。但我很困惑,因为有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
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才能得到它。。。