我有一个带有 person_id 和 name 字段的 SQL Server 数据库。

在我的应用程序中,我有一个 person_id 数组,我需要从我的数据库中获取包含数组中 id 的人员记录。

最佳答案

如果你只想要 SQL 字符串,这应该可以工作:

var sql = "select Person_Name from tbl_Person_Info where Person_Id in ("
               + string.Join( ",", PersonIdList )
               + ")";

请注意,IN 子句中允许的项目数有限制(我认为是 2000)。此外,根据您使用的 .NET 版本,string.Join 可能具有不同的参数类型,这些类型不允许使用整数列表(它们是整数吗?)。您可能必须先将它们转换为字符串,然后才能加入它们。

编辑 :请注意,如果 PersonIdList 项目来自用户输入(并且是字符串),这是非常危险的。我建议在任何可以让您更安全地处理此问题的情况下使用更新的 .NET 技术——例如 LINQ 或 EF。

关于C# 与 SQL Server SELECT WHERE IN 与数据列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5400599/

10-11 22:23