Удалить некоторую строку на основе значения ячейки перед импортом в сетку данных с помощью C#

Я пытаюсь импортировать файл Excel в datagridview из хранилища. С помощью следующего кода я могу успешно загрузить две колонки из моего файла Excel. Но я хочу изменить свою программу Excel перед тем, как импортировать ее. В моем листе Excel один столбец содержит название города, а другой столбец - номер населения. Я хочу удалить строку, которая содержит менее 10000 человек. Но я действительно не знаю, как это сделать. Вот код, по которому я импортировал файл Excel.

private void button1_Click_1(object sender, EventArgs e)
{
  String name = "Gemeinden_31.12.2011_Vergleich";
  String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
                 @"C:\C# tutorial Backup\Zensus_Gemeinden_org.xlsx" +
                 ";Extended Properties='Excel 12.0 XML;HDR=YES;';";

OleDbConnection con = new OleDbConnection(constr);
OleDbCommand oconn = new OleDbCommand("Select * From [" + name + "$D8:E11300]", con);
con.Open();

OleDbDataAdapter sda = new OleDbDataAdapter(oconn);
DataTable data = new DataTable();
sda.Fill(data);
dataGridView1.DataSource = data;


}

2 ответа

Решение

Я говорю, что нам нужно добавить фильтр при получении только данных Excel, чтобы он импортировал только требуемые данные из Excel, как показано ниже:

private void button1_Click_1(object sender, EventArgs e)
{
    String name = "Gemeinden_31.12.2011_Vergleich";
    String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
                   @"C:\C# tutorial Backup\Zensus_Gemeinden_org.xlsx" +
                   ";Extended Properties='Excel 12.0 XML;HDR=YES;';";

    OleDbConnection con = new OleDbConnection(constr);
    OleDbCommand oconn = new OleDbCommand("Select * From [" + name + "$D8:E11300] Where [population number] > 10000", con);
    con.Open();

    OleDbDataAdapter sda = new OleDbDataAdapter(oconn);
    DataTable data = new DataTable();
    sda.Fill(data);
    dataGridView1.DataSource = data;
    }

Я думаю, что вы можете просто добавить, где условие в вашем запросе только.

Как "Где население> 10000

Так что он будет извлекать только там, где население более 10000

Другие вопросы по тегам