VB Datatable выберите символ буква - PullRequest
0 голосов
/ 22 января 2020

В VB я пытаюсь сделать заявление datatable.select. У меня был один, где мне нужно было проверить, был ли 4-й символ строки между 0 и 9. Я выяснил это, используя подстроку. Я пытаюсь сделать то же самое, чтобы проверить, является ли 4-й символ буквой (в верхнем или нижнем регистре).
Итак, для цифр от 0 до 9 я сделал:

dt.Select("(cats_act_typ like '" & acttyp & "') and (cats_order like '9MS%' AND substring(cats_order,4,1) >= 0 and substring(cats_order,4,1) <= 9)").CopyToDataTable

Для от a до z Я попытался использовать char.isletter, но это не работает в операторе выбора.

dt.Select("(cats_act_typ like '" & acttyp & "') AND (cats_order like '9MS%' and char.isletter(substring(cats_order,4,1)))").CopyToDataTable

Это не работает. В sql я могу легко сделать cats_order LIKE '9MS [aZ]%'.

1 Ответ

1 голос
/ 23 января 2020

Поскольку у вас уже есть данные в памяти, вы можете использовать языковые функции c#.

var dataWithLetter = dt.AsEnumerable().
    Where(Function(row) row.Field(Of string)("cats_act_typ").Contains(acttyp)).
    Where(Function(row) Char.IsLetter(row.Field(Of string)("cats_order").ToCharArray()(3)).
    CopyToDataTable()
...