vb.net检查所有行是否包含值

vb.net检查所有行是否包含值,vb.net,datatable,dataset,odbc,Vb.net,Datatable,Dataset,Odbc,我是VB.Net的新手。 最近我想检查行是否包含值,如果包含,则返回true,如果不包含,则返回false 想象一下这是我的员工 DEPARTMENT NAME ------------------- ABC AAA CDE BBB EFG CCC 据我在PHP中所知,我们可以使用它从行中获取所有值 while( $row = mysqli_fetch_array($query) ){ if($row['DEPARTME

我是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时,例如
行(“部门”)=“CDE”
结果语句总是false,这应该是不正确的,因为该行包含“CDE”。我一整天都在试图解决这个问题并在谷歌上搜索,但我找不到出路

我想你要做的是将这个部门与一组有权对数据库进行CRUD的部门进行交叉引用

下面可以通过创建特权部门集合并使用LINQs
.Any()
检查该集合来实现这一点

另外,这可以通过使用
String.Equals()
StringComparison
枚举来改进

p.p.S在使用
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

你需要从准确描述你想要实现的目标开始。您是说要报告每一行是否在特定列中包含特定值?如果这是正确的,那么在
If
块的任一分支中都有
Exit Sub
有什么意义呢?如果这不是你想要的,那么请提供一个完整和明确的解释你想要什么。你是说你只是想检查是否有任何价值?如果是这样,为什么要在代码中测试特定值?对不起,我的英语不好,实际上我只想检查行department=abc,然后他们可以从表单中读取、更新、删除和插入数据,否则其他部门只能读取数据这听起来像是XY问题。您已经知道如何检查行在特定列中是否包含特定值,因为您已经在这样做了。基于结果启用或不启用对特定行的编辑完全是另一回事,这完全取决于您在UI中如何向用户显示数据。如果部门中有更多分类,请说“XYZ”谁可以CRUD数据库,如果我使用它,XYZ只能读取数据。当然我可以使用
If(row(“DEPARTMENT”)=“ABC”)和(row(“DEPARTMENT”)=“XYZ”)然后使用
,但是我喜欢用If函数逐个检查,所以你的意思是你想测试字段是否包含几个特定值中的任何一个,对吗?谢谢你的回答,但是我从字符串“ABC”转换过来时出错了键入“Boolean”无效。“@Aria然后需要将布尔值列出来。