我如何在 sqlite-net 中提供一个列表作为我的参数
How do I provide a list as my parameter in sqlite-net
我正在构建 Xamarin Forms 应用程序并使用 Sqlite-net。我想 运行 一个删除查询,删除列表中有一个字段的所有记录,如下所示:
//usersToDelete is a list of Objects each representing a user.
List<int> idsToDelete = new List<int>();
foreach (var user in usersToDelete)
{
idsToDelete.Add(user.Id);
}
string dbQuery = "DELETE FROM Users WHERE Id IN (?)";
var deleteCount = await LocalDatabaseConnection.ExecuteAsync(dbQuery, idsToDelete);
这对我不起作用。它失败并显示错误无法存储类型:System.Collections.Generic.List1[System.Int32]
。这是否意味着我已经在代码中构建了字符串来代替“(?)”?或者有什么方法可以将其作为参数提供。
试试这个
var utd= usersToDelete.Select(i=> i.Id.ToString()).ToArray();
string ids=string.Join(",",utd);
string dbQuery = $"DELETE FROM Users WHERE Id IN ({ids})";
我正在构建 Xamarin Forms 应用程序并使用 Sqlite-net。我想 运行 一个删除查询,删除列表中有一个字段的所有记录,如下所示:
//usersToDelete is a list of Objects each representing a user.
List<int> idsToDelete = new List<int>();
foreach (var user in usersToDelete)
{
idsToDelete.Add(user.Id);
}
string dbQuery = "DELETE FROM Users WHERE Id IN (?)";
var deleteCount = await LocalDatabaseConnection.ExecuteAsync(dbQuery, idsToDelete);
这对我不起作用。它失败并显示错误无法存储类型:System.Collections.Generic.List1[System.Int32]
。这是否意味着我已经在代码中构建了字符串来代替“(?)”?或者有什么方法可以将其作为参数提供。
试试这个
var utd= usersToDelete.Select(i=> i.Id.ToString()).ToArray();
string ids=string.Join(",",utd);
string dbQuery = $"DELETE FROM Users WHERE Id IN ({ids})";