根据存储在列表中的ID批量读取Access数据库表中内容
List<int> IDs;
string placeholders = string.Join(", ", Enumerable.Repeat("?", resultIDs.Count)).Trim();
string sql = $@"
SELECT
ID,
Name,
Num
WHERE ID IN (" + placeholders + ")";
using (var connection = new OleDbConnection(_connectionString))
using (var command = new OleDbCommand(sql, connection))
{
for (int i = 0; i < IDs.Count; i++)
{
command.Parameters.Add(new OleDbParameter(
$"param{i}",
OleDbType.Integer
)
{
Value = IDs[i]
});
}
connection.Open();
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
//读取数据
}
Tips:
这里Access不支持使用@p0 、@p1的方法进行赋值,所以这里采用了?占位符