【问题标题】:SQL find rows with key specified in list, C#SQL查找具有列表中指定键的行,C#
【发布时间】:2015-05-28 16:10:10
【问题描述】:

我想在 C# 中创建一个 sql 查询,以查找具有列表中指定键的所有行。我可以用一个查询来做到这一点吗?我想这比我在 for 循环中一次找到一个项目的解决方案更有效,如下所示:

foreach (int i in list)
{
    string Q = "... where pk = " + i.ToString();
    using (SqlCommand CM = new SqlCommand(Q, C))
    {
         using (SqlDataReader R = CM.ExecuteReader())
         {
              while (R.Read())
              {
                  ...
              }
          }
     }
}

列表包含不同的值。

提前致谢!

【问题讨论】:

标签: c# sql


【解决方案1】:

替换

string Q = "... where pk = " + i.ToString();

string Q = "... where pk IN ('" + string.Join("','", list)+"')";

然后您可以删除循环。结果应该类似于... where pk IN ('1','2','3')

【讨论】:

    【解决方案2】:

    您可以使用IN 关键字并通过在查询中将其转换为逗号分隔的字符串来传递您的列表。

    类似

    string Q = "select * from tablename where pk IN " + (comma seperated list here);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-18
      • 1970-01-01
      • 1970-01-01
      • 2011-11-23
      • 1970-01-01
      • 2022-12-09
      相关资源
      最近更新 更多