|
Hello everyone,
I am working on a filter function for my sql database (C#), and am running into a bit of difficulties, and I thought I'd ask if someone can see something wrong with my code.
In my program, I basically have 3 comboboxes: gendcombo, agecombo, and regioncombo. I have filled them (except region) with search criteria (I want to get the other two working first). When I hit the OnRunFilterBtn, I would like to load the filtered criteria into the ListView... which is composed of 5 items: ID, Title, Text, Age, Gend.
I'm not sure where I am going wrong with this one, and any direction would be helpful. I initially tried to load the columns (age, for example) into the combobox, but that didn't seem to want to work for me, so I went ahead and added it myself. I then tried to change the
string strSQL = "SELECT ca_titel, ca_alter, ca_sex FROM fragenkatalog";
to
string strSQL = "SELECT * FROM fragenkatalog";
which didn't work either.
I basically believe that I am either not filtering all of the columns of the database (i.e. only the three of them) and can't spit them into the listview, or that my strSQLFilter line is foul. Either way, I'm not sure what to do about it, and therefore would be very grateful for your help,
Thanks again,
Martina
Here's the code, if it helps. If I have not provided enough, please let me know. :)
Thanks,
M.
// agecombo
//
this.agecombo.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular);
this.agecombo.Items.Add("");
this.agecombo.Items.Add("0");
this.agecombo.Items.Add("1");
this.agecombo.Items.Add("2");
this.agecombo.Items.Add("3");
this.agecombo.Items.Add("4");
this.agecombo.Items.Add("5");
this.agecombo.Items.Add("6");
this.agecombo.Items.Add("7");
this.agecombo.Items.Add("8");
this.agecombo.Items.Add("9");
this.agecombo.Items.Add("10");
this.agecombo.Items.Add("11");
this.agecombo.Items.Add("12");
this.agecombo.Items.Add("13");
this.agecombo.Items.Add("14");
this.agecombo.Items.Add("15");
this.agecombo.Items.Add("16");
this.agecombo.Items.Add("17");
this.agecombo.Items.Add("18");
this.agecombo.Items.Add("999");
this.agecombo.Location = new System.Drawing.Point(48, 16);
this.agecombo.Size = new System.Drawing.Size(80, 21);
//
// regioncombo
//
this.regioncombo.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular);
this.regioncombo.Location = new System.Drawing.Point(48, 40);
this.regioncombo.Size = new System.Drawing.Size(80, 21);
//
// gendcombo
//
this.gendcombo.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular);
this.gendcombo.Items.Add("");
this.gendcombo.Items.Add("m");
this.gendcombo.Items.Add("f");
this.gendcombo.Items.Add("n");
this.gendcombo.Location = new System.Drawing.Point(48, 64);
this.gendcombo.Size = new System.Drawing.Size(80, 21);
//
private void OnRunFilterBtn(object sender, System.EventArgs e)
{
// the filter criteria
//ca_titel is for regioncombo, ca_alter is for agecombo, ca_sex is for gendcombo
string strSQL = "SELECT ca_titel, ca_alter, ca_sex FROM fragenkatalog";
string strSQLFilter = "";
if ( (int)gendcombo.SelectedIndex > 0 )
{
if ( strSQLFilter.Length > 0 )
{
strSQLFilter += " AND ";
}
strSQLFilter += "ca_sex = " + gendcombo.SelectedIndex.ToString();
}
if ( (int)agecombo.SelectedIndex > 0 )
{
if ( strSQLFilter.Length > 0 )
{
strSQLFilter += " AND ";
}
strSQLFilter += "ca_alter = " + agecombo.SelectedIndex.ToString();
}
if ( (int)regioncombo.SelectedIndex > 0 )
{
if ( strSQLFilter.Length > 0 )
{
strSQLFilter += " AND ";
}
strSQLFilter += "ca_titel = " + regioncombo.SelectedIndex.ToString();
}
LoadList(strSQL);
} |