2009-08-19 5 views
0

텍스트 상자의 텍스트에서 숫자를 사용하여 콤보 상자의 색인을 찾고 싶습니다. 콤보 상자를 채우는 항목은 데이터베이스에 속하므로 Delete 메서드를 사용하여 행을 제거합니다.콤보 상자의 항목 선택 및 제거

EDITED : 내가 읽어 봤는데 및 FINDSTRING이 항목 목록에서 텍스트를 발견

가 아닌 인덱스입니다. 어쨌든 콤보 상자의 색인에있는 텍스트 상자에서 텍스트를 찾으십니까?

누구든지이 코드의 문제점을 발견 할 수 있습니까?

private void button4_Click(object sender, EventArgs e) 
    { 
     int buscar; 
     buscar = comboBox1.FindStringExact(tNumEditBox3.Text, 0); 

     comboBox1.SelectedIndex = buscar; 

     if (comboBox1.SelectedIndex >= 0 && radioButton1.Checked == true) 
     { 
       CambiosEnviosDataSet.CambioGRow borrarCambioGFila; 
       borrarCambioGFila = cambiosEnviosDataSet.CambioG.FindByCambioGID(Convert.ToInt16(tNumEditBox3.Text)); 

       borrarCambioGFila.Delete(); 

       this.cambioGTableAdapter.Update(this.cambiosEnviosDataSet.CambioG); 

       CambiosEnviosDataSet.CambioERow borrarCambioEFila; 
       borrarCambioEFila = cambiosEnviosDataSet.CambioE.FindByCambioEID(Convert.ToInt16(tNumEditBox3.Text)); 

       borrarCambioEFila.Delete(); 

       this.cambioETableAdapter.Update(this.cambiosEnviosDataSet.CambioE); 
     } 
     else if (comboBox2.SelectedIndex <= 0 && radioButton2.Checked == true) 
     { 
       CambiosEnviosDataSet.EnviosRow borrarEnvioFila; 
       borrarEnvioFila = cambiosEnviosDataSet.Envios.FindByEnvioID(Convert.ToInt16(tNumEditBox3.Text)); 

       borrarEnvioFila.Delete(); 

       this.enviosTableAdapter.Update(this.cambiosEnviosDataSet.Envios); 
     } 
     else 
     { 
      MessageBox.Show("The key you are using is not in the index"); 
     } 
    } 
+0

: 당신은 ID가있는 항목을 찾을 필요가

는 다음과 같이 콤보 상자의 SelectedItem proeprty을 설정합니다. – SLaks

+0

나는 그것을 향상시켰다. – SLaks

답변

0

몇 가지 사항이 마음에 듭니다.

tNumEditBox3.Text의 값이 콤보 상자에 표시된 값이 아닙니다. 다른 대안은 radioButton2.Checkedfalse 때문이다

buscar = comboBox1.FindStringExact(tNumEditBox3.Text, 0); 

: 당신은 두 번이 호출하기 전에 값을의 확인 했.

BTW 명시 적으로 부울 값을 true 또는 false에 대해 테스트 할 필요가 없습니다. 다음과 같이 쓸 수 있습니다 :

if (boolean_value) 
{ 
    // Do stuff 
} 
0

FindStringExact으로 전화하면 첫 번째 항목을 건너 뜁니다. 그게 당신이 문제가 아닌 경우 텍스트 있는지 확인

buscar = comboBox1.FindStringExact(tNumEditBox3.Text); 

: 당신이 첫 번째 한 후 항목을 검색 할 않는 한,이 같은 startIndex 매개 변수를 사용하지 않는 오버로드를 사용한다 텍스트 상자에 정확히 콤보 상자의 항목 중 하나와 일치하며 radioButton1이 선택되어 있는지 확인하십시오.

+0

확인했는데, 나는 읽었고 findstring은 색인이 아닌 항목 목록에서 텍스트를 찾습니다. 어쨌든 콤보 상자의 색인에있는 텍스트 상자에서 텍스트를 찾으십니까? – Ricardo

0

제가 잘못 이해 한대로 이해합니다. 귀하의 텍스트 상자에는 콤보 상자에있는 항목의 ID가 있습니다 (예 : 3). 이 질문은 매우 가난하게 표현한

comboBox1.SelectedItem = 
    cambiosEnviosDataSet.CambioG.FindByCambioGID(Convert.ToInt16(tNumEditBox3.Text)); 
+0

예, ID와 항목이 콤보 상자에 있습니다. 작성한 코드를 시도했지만 작동하지 않았습니다. 또한 SelectedValue 함께 시도했지만 그것은 변환 할 수 및 'System.IConvertible' 'CambioGRow'형식의 개체. – Ricardo

관련 문제