2010-05-24 69 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