2010-02-09 3 views
0

Help! 내가 루프를 사용하여 쿼리를 생성해야하지만, 거기에 루프의 숫자 또는 클라이언트가 원하는 많은 undefinitly해야합니다. 나는 그것이 재귀로 할 수 있다는 것을 알고 있지만, exectly를 모른다. 하나 더. 통지, 제발, 그 k, i, j 이터레이터를 나중에 "if"조건으로 사용해야하고 어떻게 잡을 지 모릅니다. 고마워요사용할 수있는 반복기를 사용하여 반복을 통해 중첩 된 루프

class Class1 
    { 
     public void ListQuery() 
     { 
      for (int k = 0; k < listbox1.Count; k++) 
      { 
       for (int i = 0; i < listbox2.Count; i++) 
       { 
        for (int j = 0; j < listbox3.Count; j++) 
        { 
         if (k == listbox1.count-1 && i == listbox2.count-1 && j == listbox3.count-1) 
         { 
          if (!checkbox1) Query += resultset.element1 + "=" + listbox1[k]; 
          if (!checkbox2) Query += resultset.element2 + "=" + listbox1[i]; 
          if (!checkbox3) Query += resultset.element3 + "=" + listbox1[j]; 
         } 
        } 
       } 
      } 
     } 
    } 
+1

'k == listbox1'은 무엇을 의미합니까? '.SelectedIndex'가 누락 되었습니까? – dtb

+0

이 코드는 결함입니다. K는 정수이고 listbox1은 정수가 아닙니다. k == listbox1은 절대로 true가 아닙니다. – Carra

+0

또한 - 확인란의 위치는 어디에서 왔으며 listbox1이 세 가지 과제의 오른쪽에 사용되는 것이 맞습니까? –

답변

0

나는 이런 뜻이라고 생각합니다.

public void BuildListBoxes() 
{ 
    this.MyCurrentListBoxes = new List<ListBox>(); 

    for (int i = 0; i < this.HowManyListBoxesMyCustomerWants; i++) 
    { 
     ListBox lbx = new ListBox() { ... }; 
     this.MyCurrentListBoxes.Add(lbx); 
     this.Controls.Add(lbx); 
    } 
} 

public void BuildQuery() 
{ 
    List<string> queryParts = new List<string>(); 

    foreach (ListBox lbx in this.MyCurrentListBoxes) 
    { 
     if (this.IsCheckBoxCheckedFor(lbx)) 
     { 
      queryParts.Add(this.GetFieldNameFor(lbx) + "=" + lbx.SelectedValue); 
     } 
    } 

    string query = String.Join(" AND ", queryParts.ToArray()); 

    this.ExecuteQuery(query); 
} 
+0

예, 그게 내가 뭘. 나는 더 쉽게하려고 노력했다. 사실, 그 유일한 알고리즘. – user269414