none
DataGridViewAutoFilter RRS feed

  • Вопрос

  • Место кода где происходит ошибка. 
    Дополнительные сведения: The DataSource property of the containing DataGridView control must be set to a BindingSource.

    if(comboBox1.SelectedIndex == 0)
                {
                    OleDbConnection dbCon = new OleDbConnection(
                @"Provider=sqloledb;Data Source=(local);Initial Catalog=kk_start;Integrated Security=SSPI;Connect Timeout=15;
                Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
                    dbCon.Open();
                    OleDbDataAdapter dbAdapter2 = new OleDbDataAdapter(
                        "SELECT * FROM [" + comboBox1.SelectedItem + "]", dbCon);
                    System.Data.DataTable dtb1 = new System.Data.DataTable();
                    dbAdapter2.Fill(dtb1);
                    dataGridView1.DataSource = dtb1;
                    dbCon.Close();
                    foreach (DataColumn dtItem in dtb1.Columns)
                    {
                        dataGridView2.Columns.Add(dtItem.ColumnName, dtItem.ColumnName);
                    }
                    // Continue only if the data source has been set.
                    if (dataGridView1.DataSource == null)
                    {
                        return;
                    }
                    // Add the AutoFilter header cell to each column.
                    foreach (DataGridViewColumn col in dataGridView1.Columns)
                    {
                        
                        col.HeaderCell = new DataGridViewAutoFilterColumnHeaderCell(col.HeaderCell);
                    }
    
                }

    Я так понимаю, что это из-за того, что используется не BindingSource. Если я прав, то каким образом 

    // Continue only if the data source has been set.
                    if (dataGridView1.DataSource == null)
                    {
                        return;
                    }
                    // Add the AutoFilter header cell to each column.
                    foreach (DataGridViewColumn col in dataGridView1.Columns)
                    {
                        
                        col.HeaderCell = new DataGridViewAutoFilterColumnHeaderCell(col.HeaderCell);
                    }
    Реализовать для моего подключения?

    9 сентября 2015 г. 5:40

Ответы

  • if(comboBox1.SelectedIndex == 0)
                {
                    BindingSource bs = new BindingSource();
                    OleDbConnection dbCon = new OleDbConnection(
                @"Provider=sqloledb;Data Source=(local);Initial Catalog=kk_start;Integrated Security=SSPI;Connect Timeout=15;
                Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
                    dbCon.Open();
                    OleDbDataAdapter dbAdapter2 = new OleDbDataAdapter("SELECT * FROM [" + comboBox1.SelectedItem + "]", dbCon);
                    System.Data.DataTable dtb1 = new System.Data.DataTable();
                    bs.DataSource = dtb1;
                    dbAdapter2.Fill(dtb1);
                    dataGridView1.DataSource = bs;
                    dbCon.Close();
                    foreach (DataColumn dtItem in dtb1.Columns)
                    {
                        dataGridView2.Columns.Add(dtItem.ColumnName, dtItem.ColumnName);
                    }
                    // Continue only if the data source has been set.
                    if (dataGridView1.DataSource == null)
                    {
                        return;
                    }
                    // Add the AutoFilter header cell to each column.
                    foreach (DataGridViewColumn col in dataGridView1.Columns)
                    {
                        
                        col.HeaderCell = new DataGridViewAutoFilterColumnHeaderCell(col.HeaderCell);
                    }
    Решение
    10 сентября 2015 г. 2:52