С# WinForms SelectedIndexChanged
Буду конкретным: при клике на toolstripComboBox, выбирая строку из выпадающего списка, на dataGridView должна открываться таблица соответствующая названию выбранной строки. Таблицы из базы данных .mdf считываются нормально, фото 1 - это видно при открытии выпадающего списка, но на dataGridView ничего не появляется. Не понимаю в чём проблема.
Фото 1
Код:
private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
using (connection = new SqlConnection(connectionString))
{
string sTable = toolStripComboBox1.SelectedItem.ToString();
sqlDataAdapter = new SqlDataAdapter("SELECT * FROM " + sTable, connection);
dat = new DataTable(sTable);
bs = new BindingSource();
connection.Open();
sqlDataAdapter.Fill(dat);
bs.DataSource = dat;
bindingNavigator1.BindingSource = bs;
dataGridView1.DataSource = bs;
connection.Close();
}
}
Если использовать редактор справа, то всё прекрасно работает, фото 2. Код редактора на всякий случай тоже приложу.
Код:
private void button1_Click(object sender, EventArgs e)
{
using (connection = new SqlConnection(connectionString))
{
try
{
sqlDataAdapter = new SqlDataAdapter(textBox1.Text, connection);
dat = new DataTable();
bs = new BindingSource();
connection.Open();
sqlDataAdapter.Fill(dat);
bs.DataSource = dat;
bindingNavigator1.BindingSource = bs;
dataGridView1.DataSource = bs;
connection.Close();
}
catch
{
MessageBox.Show("Неправильно написан запрос. Попробуйте снова.");
}
}
}
Код функции, загружающий названия таблиц в Items:
private void Form1_Load(object sender, EventArgs e)
{
using (connection)
{
connection.Open();
DataTable tables = connection.GetSchema("Tables");
foreach (DataRow row in tables.Rows)
{
string TableName = row["TABLE_NAME"].ToString();
toolStripComboBox1.Items.Add(TableName);
}
connection.Close();
}
}

