1 Востаннє редагувалося Betterthanyou (25.10.2021 18:47:45)

Тема: datatable filter expression

Напевно це не важливо, але скажу: Отрима з бази даних таблицю і встановив її в DataTable через метод Load.

            using (SQLiteDataReader sdr = dBObject.command.ExecuteReader())
            {
                dBObject.dataTable = new DataTable();
                dBObject.dataTable.Load(sdr);

Таблиця правильно завантажилася, відображаються всі поля.

Перейменував колонки через властивість ColumnName
Поле яке я використовую в прикладі називається next_id_inner, перейменував на Next Id Inner

dt.Columns[i].ColumnName

Запитання:
Намагаюся методом Select знайти в рядку Next Id Inner, guid зі значенням 09db9689-88a3-464a-abec-9bcd72350399

        currentTable.Select($"'Next Id Inner' like '%09db9689-88a3-464a-abec-9bcd72350399%'")
//  без "$"
currentTable.Select("'Next Id Inner' like '%09db9689-88a3-464a-abec-9bcd72350399%'")
// з "=" замість like
currentTable.Select("'Next Id Inner' = '09db9689-88a3-464a-abec-9bcd72350399'")

Нічого не знаходить.

Якщо я шукаю '%' виводить всі поля, і в цих полях є guid який я шукаю.

currentTable.Select($"'Next Id Inner' like '%'")[2][7] // за індексами 2 і 7 поле яке я шукаю

В чому може бути проблема ? Як виправити ?

2

Re: datatable filter expression

https://www.csharp-examples.net/dataview-rowfilter/
Одинарні лапки - це стрічка; назва поля, якщо містить особливі символи, має бути в квадратних дужках:

"[Next Id Inner] like '%'"

Ваш запит означає "якщо стрічка 'Next Id Inner' подібна до стрічки '%09db9689-88a3-464a-abec-9bcd72350399%'", що очевидно не виконується.

Подякували: leofun01, Betterthanyou2