2010-05-24 75 views
0

我在VC#和ADO SQLITE一個新手...使用組合框的值作爲查詢值(VC#2K8/ADO SQLITE)

我試圖根據價值來更改ComboBox的內容呈現一個又一個......

我的問題是在這裏:

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

使用什麼做這項工作?這裏comboBox1.text'是看到作爲一個句子不是一個變量...

下面是代碼:

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。嘗試一下。 (我可能有一些語法錯誤的,因爲我不能現在來測試這個權利......但它應該是相似的)

從代碼:

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

謝謝,它的工作就像我想要的。 Regards – nicodevil 2010-05-29 19:35:11

0

comboBox1.Text是的標籤組合框,你需要comboBox1.SelectedValue。你還需要做一下阿隆所說的並添加一個參數。

+0

謝謝,但它確實是comboBox1.Text ... – nicodevil 2010-05-29 19:36:15

+0

如果你這麼說,但要注意你基於combobox的標籤而不是用戶選擇的值查詢。 – 2010-05-30 11:47:22