2010-05-24 5 views
0

내가 VC# 및 ADO SQLite는의 안돼서 ...사용 콤보 상자 값

내가 값에 따라 콤보 상자의 내용을 변경하기 위해 노력하고있어

SQLiteCommand cmd3 = new SQLiteCommand("select distinct(ACTION) from ACTION_LIST where CATEGORY='comboBox1.text'", conn2); 

어떤 일을하는 데 사용 :

내 문제가 여기에있다 ... 또 하나의 선물?

private void Form1_Load(object sender, EventArgs e) 
     { 
      using (SQLiteConnection conn1 = new SQLiteConnection(@"Data Source = Data\MRIS_DB_MASTER")) 
      { 
       conn1.Open(); 
       SQLiteCommand cmd2 = new SQLiteCommand("select distinct(CATEGORY) from ACTION_LIST", conn1); 
       SQLiteDataAdapter adapter1 = new SQLiteDataAdapter(cmd2); 
       DataTable tbl1 = new DataTable(); 
       adapter1.Fill(tbl1); 
       comboBox1.DataSource = tbl1; 
       comboBox1.DisplayMember = "CATEGORY"; 
       adapter1.Dispose(); 
       cmd2.Dispose(); 
      } 

      using (SQLiteConnection conn2 = new SQLiteConnection(@"Data Source = Data\MRIS_DB_MASTER")) 
      { 
       conn2.Open(); 
       SQLiteCommand cmd3 = new SQLiteCommand("select distinct(ACTION) from ACTION_LIST where CATEGORY='comboBox1.text'", conn2); 
       SQLiteDataAdapter adapter2 = new SQLiteDataAdapter(cmd3); 
       DataTable tbl2 = new DataTable(); 
       adapter2.Fill(tbl2); 
       comboBox2.DataSource = tbl2; 
       comboBox2.DisplayMember = "ACTION"; 
       adapter2.Dispose(); 
       cmd3.Dispose(); 
      } 
     } 

감사

관련

답변

1

사용 System.Data.SQLite.SQLiteParameter : 여기 comboBox1.text은 '여기

코드입니다 ... 문장이 아닌 변수로 볼 수있다. 이것을 시험해보십시오.

SQLiteCommand cmd3 = new SQLiteCommand("select distinct(ACTION) from ACTION_LIST where [email protected]", conn2); 
cmd3.Parameters.Add(new SQLiteParameter("@category",comboBox1.Text)); 
+0

감사합니다. 원하는대로 작동합니다. 감사합니다. – nicodevil

0

comboBox1.Text이의 레이블입니다 : 코드에서

(나는 지금이 권리를 테스트 할 수 아니라서 어떤 구문이 잘못 할 수 있습니다 ...하지만 유사해야합니다) 콤보 상자, 당신은 comboBox1.SelectedValue가 필요합니다. 또한 aaron이 말한 것을 수행하고 매개 변수를 추가해야합니다.

+0

고마워요.하지만 정말로 comboBox1.Text ... – nicodevil

+0

그렇다면, 사용자가 선택한 값이 아닌 콤보 상자의 레이블을 기반으로 쿼리한다는 것을 알고 있어야합니다. –