vb.net检查所有行是否包含值
我是VB.Net的新手。 最近我想检查行是否包含值,如果包含,则返回true,如果不包含,则返回false 想象一下这是我的员工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
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然后需要将布尔值列出来。