Не удается отфильтровать второй комбинированный список (cmbRegion), когда я нажимаю на элемент в первом комбинированном окне (cmbHouse).
Я заполняю 2 комбинированных списка следующим образом:
//cmbHouse
string cmbHouse_query = "SELECT * FROM House";
OleDbDataAdapter dahouse = new OleDbDataAdapter(cmbHouse_query, connection);
DataTable tablehouse = new DataTable();
dahouse.Fill(tablehouse);
cmbHouse.DataSource = tablehouse;
cmbHouse.DisplayMember = "House_names";
cmbHouse.ValueMember = "House.num_region"; //this is foreign key which equals to Region table's primary key
cmbHouse.SelectedIndex = -1;
//cmbRegion
string cmbRegion_query = "SELECT * FROM Region";
OleDbDataAdapter daregion = new OleDbDataAdapter(cmbRegion_query, connection);
DataTable tableregion = new DataTable();
daregion.Fill(tableregion);
cmbRegion.DataSource = tableregion;
cmbRegion.DisplayMember = "Nameofregions";
cmbRegion.ValueMember = "ID_region";
cmbRegion.SelectedIndex = -1;
Я пытался отфильтровать по этому коду:
private void cmbHouse_SelectionChangeCommitted(object sender, EventArgs e)
{
DataRow selectedDataRow = ((DataRowView)cmbHouse.SelectedItem).Row;
int num_region = Convert.ToInt32(cmbHouse.SelectedValue);
string query = "SELECT * FROM Region, House WHERE Region.ID_region='" + num_region.ToString() + "'";
OleDbDataAdapter danum_region = new OleDbDataAdapter(query, connection);
DataTable tablenum_region = new DataTable();
danum_region.Fill(tablenum_region);
cmbRegion.DataSource = tablenum_region;
cmbRegion.DisplayMember = "Nameofregions";
cmbRegion.ValueMember = "ID_region";
}
Когда я щелкаю по любому элементу в первом поле со списком (cmbHouse), появляется сообщение об ошибке: «System.Data.OleDb.OleDbException:« Несоответствие типов данных в выражении критерия. »».
Я хочу, чтобы второй выпадающий список (cmbRegion) показывал только тот регион, в котором расположен дом. Например, [дом_имя] находится в этом регионе.
Спасибо за помощь.