vb.net - VB Datatable select is character a letter
问题描述
在 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,但这在 select 语句中不起作用。
dt.Select("(cats_act_typ like '" & acttyp & "') AND (cats_order like '9MS%' and char.isletter(substring(cats_order,4,1)))").CopyToDataTable
那是行不通的。在 sql 中,我可以轻松地做 cat_order LIKE '9MS[aZ]%'。
解决方案
由于内存中已有数据,因此可以使用 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()
推荐阅读
- nginx - NGINX 正则表达式与可选参数匹配位置
- mysql - 不使用 php 时,如何将 mysql 参数作为数组?
- python - “缩进中制表符和空格的使用不一致”
- r - Stargazer 每个数据集一行
- html - 如何在反应中为我的 svg 图像添加颜色
- excel - 使用嵌套的 If 查找和替换 VBA
- google-apps-script - 按名称而不是 ID 获取 Google 电子表格
- json - json解码/解组在json中没有按预期工作
- node.js - 尝试在 MariaDB shell 中重置 Root 密码时出现语法错误
- c# - 如何正确发送早期的 http 错误 413(请求实体太大)?