2013-05-14 6 views
0

두 개의 목록 상자가 있으며 해당 데이터가 SQL Server에 저장됩니다. SQL Server에서 ListBox1의 데이터를로드 할 수 있습니다. 그러나 ListBox 1에서 ListBox 2에 선택한 항목의 해당 데이터를 채울 수 없습니다. 목록 상자 1의 항목을 클릭하면 Listbox2에 데이터가 표시되지 않습니다.목록 상자의 항목 선택

private void Form2_Load(object sender, EventArgs e) 
     { 
      SqlConnection cs = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=details;User ID=sa;[email protected]"); 
      SqlCommand cmd = new SqlCommand(); 
      cmd.Connection = cs; 
      cmd.CommandType = CommandType.Text; 
      cmd.CommandText = "SELECT memo FROM new"; 
     DataSet objDS = new DataSet(); 
     SqlDataAdapter da = new SqlDataAdapter(); 
     da.SelectCommand = cmd; 

     // cs.Open(); 
     da.Fill(objDS); 

     //cs.Close(); 

     listMemo.ValueMember = "memo"; 
     listMemo.DisplayMember = "memo"; 
     listMemo.DataSource = objDS.Tables[0]; 

    } 


    private void listMemo_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     // string memo = Convert.ToInt32(listMemo.SelectedValue.ToString()); 
     if (listMemo.SelectedValue.ToString() != "") 
     { 
      string memo = Convert.ToString(listMemo.SelectedValue.ToString()); 
      filltext(memo); 
     } 


    } 


    private void filltext(string memo) 
    { 
     SqlConnection cs = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=details;User ID=sa;[email protected]"); 
     SqlCommand cmd = new SqlCommand(); 
     cmd.Connection = cs; 
     cmd.CommandType = CommandType.Text; 
     cmd.CommandText = "SELECT text FROM new WHERE memo = '"+ listMemo.SelectedValue.ToString() +"'" ; 
     //cmd.Parameters.AddWithValue("@memo", listMemo); 

     DataSet objDS = new DataSet(); 
     SqlDataAdapter da = new SqlDataAdapter(); 
     da.SelectCommand = cmd; 

     // cs.Open(); 
     da.Fill(objDS); 

    // cs.Close(); 

     if (objDS.Tables[0].Rows.Count >0) 
     { 
      listText.ValueMember = "text"; 
      listText.DisplayMember = "text"; 
      listText.DataSource = objDS.Tables[0]; 

     } 

    } 
+0

사이드 노트 : SqlConnection 개체를 삭제해야합니다. –

+0

'filltext'에서'memo' 인자를 사용하고 있지 않습니다. 대신에, 당신은'listMemo'에서 문자열을 다시 얻고 있습니다. –

+0

또한 SQL 쿼리가 결과를 반환한다고 독자적으로 확인 했습니까? –

답변

0
  if (dt.Rows.Count > 0) 
      { 
       objDS.Tables.Add(dt); 
       ListBox1.DataSource = ds.Tables[0]; 
       ListBox1.DataTextField = "text";// display member 
       ListBox1.DataValueField = "";// Id 
       ListBox1.DataBind(); 
      } 

바인드 목록 상자 ..!

관련 문제