【发布时间】:2019-02-14 13:24:59
【问题描述】:
我是 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”。我试图解决并搜索它一整天,但我找不到出路
【问题讨论】:
-
您需要从准确描述您想要实现的目标开始。您是说要报告每个单独的行是否包含特定列中的特定值?如果这是正确的,那么在
If块的任一分支中都有一个Exit Sub有什么意义?如果那不是您想要的,那么请提供您想要的完整和清晰的解释。你是说你只是想检查是否有任何价值?如果是这样,您为什么要测试代码中的特定值? -
对不起,我的英语不好,其实我只是想检查行部门是否= abc,然后他们可以从表单中读取、更新、删除和插入数据,否则其他部门只能读取数据
-
这听起来像是 XY 问题。您已经知道如何检查某行是否包含特定列中的特定值,因为您已经在这样做了。根据结果为特定行启用或不启用编辑完全是另一回事,这完全取决于您在 UI 中向用户显示数据的方式。
-
如果部门有更多的分类,说“XYZ”谁可以CRUD数据库,如果我用那个,XYZ只能读取数据。我当然可以使用
If (row("DEPARTMENT") = "ABC") And (row("DEPARTMENT") = "XYZ") Then,但我喜欢用 if 函数一一检查 -
那么你的意思是你想测试该字段是否包含几个特定值中的任何一个,对吗?
标签: vb.net datatable dataset odbc