2013-05-27 80 views
-1

我有一個3表:Section,Class and Student ...現在我想要在下拉列表中根據選擇類加載下拉列表中的studentName,並在下拉列表中選擇部分[Here Section Field,Class現場將b選擇下拉列表通過和StudentName也顯示在下拉列表]選擇下拉列表相關prblm的索引變化

這裏是我的表預覽

SectionEnty

Id,SectionTitle,Capacity 

ClassEntry

Id,ClassTitle,SectionId 

StudentInfo

Id,FullName,ClassId,Section 

這將b對我來說非常有幫助。如果任何人在這種情況下幫助我,因爲我都準備好了,但由於多重索引處理而無法工作。

+0

你能不能更具體一點嗎? ! – Ted

+0

Hei Ted ..其實我有三個dropdownlist,如classdropdown,sectiondropdown和Studentname dropdown.Now我想從StudentTable中檢索學生姓名,根據從下拉列表中選擇班級和部分... – shhuvo

回答

0

ASPX:

<asp:DropDownList ID="classdropdown" runat="server" OnSelectedIndexChanged="classdropdown_SelectedIndexChanged" AutoPostBack="true" /> 

<asp:DropDownList ID="sectiondropdown" runat="server" OnSelectedIndexChanged="sectiondropdown_SelectedIndexChanged" AutoPostBack="true" /> 

<asp:DropDownList ID="studentnamedropdown" runat="server" /> 

C#:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     this.LoadClassDropdown(); 
    } 
} 

// set initial values 
private void LoadClassDropdown() 
{ 
    using (SqlDataAdapter da = new SqlDataAdapter("SELECT Id,SectionTitle FROM SectionEnty", "your connection string")) 
    {  
     using (DataSet ds = new DataSet()) 
     { 
      da.SelectCommand.Connection.Open(); 
      da.Fill(ds); 
      da.SelectCommand.Connection.Close(); 

      classdropdown.DataSource = ds; 
      classdropdown.DataValueField = "Id"; 
      classdropdown.DataTextField = "SectionTitle"; 
      classdropdown.DataBind(); 
     } 
    } 
} 

protected void classdropdown_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    using (SqlDataAdapter da = new SqlDataAdapter("SELECT Id,ClassTitle FROM ClassEntry WHERE SectionId = @SectionId", "your connection string") 
    { 
     da.SelectCommand.Parameters.Add(new SqlParameter("@SectionId", sectiondropdown.SelectedValue)); 

     using (DataSet ds = new DataSet()) 
     { 
      da.SelectCommand.Connection.Open(); 
      da.Fill(ds); 
      da.SelectCommand.Connection.Close(); 

      sectiondropdown.DataSource = ds; 
      sectiondropdown.DataValueField = "Id"; 
      sectiondropdown.DataTextField = "ClassTitle"; 
      sectiondropdown.DataBind(); 
     } 
    } 
} 

protected void sectiondropdown_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    using (SqlDataAdapter da = new SqlDataAdapter("SELECT Id,FullName FROM StudentInfo WHERE ClassId = @ClassId", "your connection string")) 
    { 
     da.SelectCommand.Parameters.Add(new SqlParameter("@ClassId", classdropdown.SelectedValue)); 

     using (DataSet ds = new DataSet()) 
     { 
      da.SelectCommand.Connection.Open(); 
      da.Fill(ds); 
      da.SelectCommand.Connection.Close(); 

      studentnamedropdown.DataSource = ds; 
      studentnamedropdown.DataValueField = "Id"; 
      studentnamedropdown.DataTextField = "FullName"; 
      studentnamedropdown.DataBind(); 
     } 
    } 
} 

現在你studentnamedropdown包含列表選定類和部分。

有任何問題,請讓我知道...

+0

Hei Ted感謝您對我的查詢所做的努力我已經準備好了你的機制,但是出現了一個錯誤......在這一點上「private void LoadClassDropdown() { using(SqlDataAdapter da = new SqlDataAdapter()) {error} [object reference not set to an對象的實例。] // da.SelectCommand.CommandText =「Select Id,SectionTitle From SectionEntry」;「 – shhuvo

+0

嗯它看起來像da沒有初始化。我的錯。再次檢查帖子,我已經改變了使用語句,包括sqlcommand和sqlconnection n構造函數 – Ted

+0

特德謝謝你的答覆..我也試着說你...但還有另一個問題出現.../** A與SQL Server建立連接時發生網絡相關或特定於實例的錯誤。服務器未找到或無法訪問。驗證實例名稱是否正確,並將SQL Server配置爲允許遠程連接。 (提供程序:命名管道提供程序,錯誤:40 - 無法打開連接到SQL Server)***即時嘗試解決此問題...但你也給我關於如何在你的機器上寫連接字符串的提示...這將是一個更容易的我... – shhuvo