vb.net - vb.net 检查所有行是否包含值
问题描述
我是 VB.Net 的新手。最近想检查该行是否包含值,如果包含,则返回true,如果不包含,则包含false。
想象一下这是我的餐桌呼叫员工
DEPARTMENT NAME
-------------------
ABC AAA
CDE BBB
EFG CCC
根据我在 PHP 中的了解,我们可以使用它从行中获取所有值。
while( $row = mysqli_fetch_array($query) ){
if($row['DEPARTMENT'] == "CDE"){
echo "True";
}
else {
echo "False";
}
}
这是我在 VB.NET 中的代码
Dim da As Odbc.OdbcDataAdapter
Dim ds As DataSet
Dim dt As DataTable
da = New Odbc.OdbcDataAdapter("SELECT * FROM employee", Connection)
ds = New DataSet
da.Fill(ds, "employee")
dt = ds.Tables("employee")
For Each row As DataRow In dt.Rows
If (row("DEPARTMENT") = "ABC") Then
MsgBox("True")
Else
MsgBox("False")
End If
Next
主要问题是如果我尝试获取第一条记录,则声明是否有效。但是当我试图获取记录号 2 时,例如row("DEPARTMENT") = "CDE"
结果语句总是错误的,这不应该是正确的,因为该行包含“CDE”。我试图解决和谷歌搜索一整天,但我找不到出路
解决方案
我认为您要做的是将部门与有权对数据库进行 CRUD 的部门集合进行交叉引用?
下面可以通过创建特权部门的集合并使用 LINQ 检查该集合来实现此目的.Any()
。
PS 这可以通过使用String.Equals()
和StringComparison
枚举来改进。
PPSUsing
在使用类时使用语句IDisposable
。
Dim departments As List(Of String) = New List(Of String) From {
"ABC",
"CDE"
}
Dim da As Odbc.OdbcDataAdapter
Dim ds As DataSet
Dim dt As DataTable
da = New Odbc.OdbcDataAdapter("SELECT * FROM employee", Connection)
ds = New DataSet
da.Fill(ds, "employee")
dt = ds.Tables("employee")
For Each row As DataRow In dt.Rows
Dim department = row("DEPARTMENT").ToString()
If departments.Any(Function(t) t.Equals(department, StringComparison.InvariantCultureIgnoreCase)) Then
MsgBox("True")
Else
MsgBox("False")
End If
Next
推荐阅读
- angular - 错误请求 400 JSON 解析错误
- c# - 错误无法隐式转换类型
- symfony - Symfony EventSubscriber:页面没有正确重定向
- sql - DAX测量的最大分区等效?
- javascript - 如何为 DataTables 中的按钮分配 ID?
- mysql - 二级索引中的列顺序
- javascript - 选择深度嵌套的复选框需要使用 jQuery 选择父复选框
- python - 如何获取今天 - PySpark(SQL) 中的“6 个月”日期
- javascript - 在具有更大键的对象数组中查找元素
- python - 如何在 Python 中从日期和小时字符串中删除小时数