我试图检查我的data
记录的字段DataTable
是否设置为' 0'或者' 1'。
我的所有本地记录都保存到local_ds
DataTable中。现在,我要检查的记录是这样的:
21a956af-f304-4c72-97cf-1ef08e8719fc
为了更好的愿景我在这里粘贴我的表格的内容(这也是我的DataTable local_ds
的内容):
如何查看我要检查的记录,将字段data
设置为0.现在我通过以下代码执行研究:
Dim local_data = local_ds.Tables(0).Select(String.Format("GUID = '{0}'", "21a956af-f304-4c72-97cf-1ef08e8719fc"), String.Format("data", 1))
上面的代码使用LINQ
来获取结果,无论如何,我将GUID
字段传递给搜索,将字段数据传递为1
。此代码应该返回local_data.length
等于0,但是,返回1,这是错误的,因为我只想检查字段data
是0还是1.在此示例中结果应该是local_data.length = 0
'因为LINQ
查询我明确指出要查找包含GUID = x
和data = 1
的记录。
我已经知道数据库中存在此记录,local_data
变量必须帮助我识别data
字段具有哪种类型的值。
那么,我做错了什么?
答案 0 :(得分:2)
不,在上面的代码中,您没有使用LINQ。
DataTable.Select
是从1.1版本的.NET Framework开始可用的方法,并且存在in four possible overloads。
您正在使用的是作为第一个参数的WHERE条件,以及作为第二个参数的SORT顺序。所以你并没有真正传递条件WHERE .... AND Data = 1
,但是Data=1
它被解释为某种排序顺序。
WHERE参数的正确字符串应为
Dim where as String = String.Format("GUID = '{0}' AND Data = {1}", _
"21a956af-f304-4c72-97cf-1ef08e8719fc", 1)
Dim local_data = local_ds.Tables(0).Select(where)