У меня есть ComboBox1 и ComboBox2. Данные для ComboBox берутся из LocalDB и эти два элемента управления связанны. В одном море(ComboBox1) отображается, в другом район(ComboBox2). Не в каждом море добавлены районы, поэтому надо проверить SqlCommand cmd2 = new SqlCommand(queryString2, connection); на пустой запрос и если запрос пуст сделать comboBox2.Enabled = false;
Сам код :
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedValue == null) return;
string SeaID = comboBox1.SelectedValue.ToString();
string queryString2 = String.Format("SELECT Id, Area FROM dbo.Area WHERE seaID ='" + SeaID + "'");
using (SqlConnection connection = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\ПАК_ИП_ОЭБ_Data.mdf;Integrated Security=True"))
{
try
{
SqlCommand cmd2 = new SqlCommand(queryString2, connection);
if (cmd2 != null)
{
DataTable tbl2 = new DataTable();
SqlDataAdapter da2 = new SqlDataAdapter(cmd2);
da2.Fill(tbl2);
this.comboBox2.DataSource = tbl2;
this.comboBox2.DisplayMember = "Area";// столбец для отображения
this.comboBox2.ValueMember = "Id";//столбец с id
comboBox2.SelectedIndex = -1;
comboBox2.Enabled = true;
}
else
{
MessageBox.Show("1");
comboBox2.SelectedIndex = -1;
comboBox2.Enabled = false;
}
}
finally
{
if (connection != null)
{
connection.Close();
}
}
}
Но тут всегда срабатывает условие if (cmd2 != null), на какое его стоить поменять, чтоб пустые запросы не обрабатывались и попадали в
else
{
MessageBox.Show("1");
comboBox2.SelectedIndex = -1;
comboBox2.Enabled = false;
}
Продвижение своими сайтами как стратегия роста и независимости