根据存储在列表中的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的方法进行赋值,所以这里采用了?占位符 

posted @ 2025-10-14 14:03  小犟  阅读(2)  评论(0)    收藏  举报