【问题标题】:How do I provide a list as my parameter in sqlite-net如何在 sqlite-net 中提供一个列表作为我的参数
【发布时间】:2022-01-24 18:43:36
【问题描述】:

我正在构建一个 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]。这是否意味着我已经在“(?)”的代码中构建了字符串?或者有什么方法可以将其作为参数提供。

【问题讨论】:

标签: c# xamarin.forms sqlite-net sqlite-net-pcl


【解决方案1】:

试试这个

var utd= usersToDelete.Select(i=> i.Id.ToString()).ToArray();
string ids=string.Join(",",utd);
string dbQuery = $"DELETE FROM Users WHERE Id IN ({ids})";

【讨论】:

  • 似乎没有办法仅使用参数来做到这一点,但这有效。谢谢
  • @Kikanye 不客气
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-21
  • 1970-01-01
  • 2010-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-05
相关资源
最近更新 更多