Как правильно отфильтровать DataTable?

291
30 апреля 2017, 23:53

КОД(условный)

string str_pole_1;
     str_pole_1 = "pole_1_zp_2";
    DataTable dt_tbl_1_msql = new DataTable();               
    MySqlDtAdp_0.Fill(dt_tbl_1_msql); // -> DataTable
    dt_tbl_1_msql.DefaultView.RowFilter = "pole_1 = '" + str_pole_1 + "'"; // фильтр         
     dataGridView1.DataSource = dt_tbl_1_msql; 
     Application.DoEvents();
for (int s2_t = s1_t-1; s2_t <= f1_f; s2_t++ )// 
{
    // 
    // ... код ...
    //      
    foreach (DataRow row_pl in dt_tbl_1_msql.Rows) // 
    {
        string vr_pole_2 = row_pl["pole_2"].ToString(); // поле  1
        string vr_pole_3 = row_pl["pole_3"].ToString(); // поле  2          
    }
}

Сценарий
1. Создаю DataTable.
2. Фильтрую DataTable по полю "pole_1" по значению "pole_1_zp_2".
3. Использую значения из DataTable в переменных vr_pole_2, vr_pole_3.

Цель
Добиться, чтобы в цикле foreach (DataRow row_pl in dt_tbl_1_msql.Rows) перебирались значения
pole_2_zp_4 pole_3_zp_4
pole_2_zp_5 pole_3_zp_5
pole_2_zp_6 pole_3_zp_6
соответственно для каждой переменной.
Т.е. чтобы записи соответствующие значению объявленному в переменной "str_pole_1 = "pole_1_zp_2";

По факту
В цикле foreach (DataRow row_pl in dt_tbl_1_msql.Rows) перебираются значения pole_2_zp_1 pole_3_zp_1
pole_2_zp_2 pole_3_zp_2
pole_2_zp_3 pole_3_zp_3

ВОПРОС
1. Как сделать чтобы в цикле foreach (DataRow row_pl in dt_tbl_1_msql.Rows) перебирались значения
pole_2_zp_4 pole_3_zp_4
pole_2_zp_5 pole_3_zp_5
pole_2_zp_6 pole_3_zp_6
?
2. Если есть другие варианты решения, прошу поделиться.

СКРИН (условный)

Answer 1

В самом DataTable после фильтрации строки остаются прежними. Они меняются в DataView. Вот с этим вью и нужно работать.

Вместо

foreach (DataRow row_pl in dt_tbl_1_msql.Rows)

пишем

foreach (DataRowView row_pl in dt_tbl_1_msql.DefaultView)
    // row_pl.Row - доступ к исходной строке
READ ALSO
Как получить сообщение без вложений? (c#, MailKit, MimeKit)

Как получить сообщение без вложений? (c#, MailKit, MimeKit)

Подскажите есть ли метод в MailKit который позволяет получить сообщение без вложения, но что бы информация, true or false - есть вложение или нет, была?

238
VK Api для сайта. Как получить право WALL?

VK Api для сайта. Как получить право WALL?

Скажите кто знает, как у сервиса Постио при подключении аккаунта выходит запрос на "Доступ к стене"? Хотя в доке написано что это запрещено...

248
Laravel oneToMany Insert/Update/Delete

Laravel oneToMany Insert/Update/Delete

Есть две таблицы: User

265
GET не пропускает &amp; Помогите

GET не пропускает & Помогите

Всем приветЕсть скрипт и такую ссылку он не пропускает

236