【发布时间】:2019-08-15 00:31:06
【问题描述】:
我正在开发一个 Visual Basic 项目。我有一个连接到我的项目的 mdb 数据库。我想添加一个SELECT 查询来查找我在程序中给出的数组中的结果
我试过写这样的声明:
SELECT kodu, adi_soyadi, sectigi_ders_say
FROM ogrenciler
WHERE kodu IN ?
但它不起作用。在我的页面代码中,我有一个数组,我想从"kodu" 在我的数组中的"ogrenciler" 表中查找结果。
【问题讨论】:
-
您不能像这样将数组作为单个值传递。当您使用
IN时,您必须有一个离散值列表。你可以构建SQL并使用参数,这是正确的方式,如this。 -
Kodu 是
String字段还是数字字段?您可以构建一个逗号分隔的字符串(在括号中)以附加到您的IN语句 -Kodu IN (val1, val2, val3)等(如果它是字符串,请在每个变量周围加上单引号) -
字符串字段。这是一个好方法,但我不知道我的数组中有多少个参数
-
您不需要知道数组中有多少元素。如果您不打算使用参数,那么您可以这样做:
sql = $"SELECT ... WHERE kodu IN ('{String.Join("', '", myArray}')"。如果您打算使用通常应该使用的参数,那么我提供的链接使用循环,因此可以处理任意数量的元素。 -
您可以将数组加载到临时表中,然后使用 INNER JOIN 来获得您要查找的结果。我不认为你可以有一个数组参数并使用“WHERE kodu IN (?)”之类的东西