此场景中的Sql查询-C

此场景中的Sql查询-C,sql,c#-4.0,Sql,C# 4.0,我有一张表格: ID Name 1 Ken 2 John 3 Tom 我在c代码中有以下变量: 变量名称//这是一些名字的列表,比如肯,汤姆 我需要一个查询,它遍历Names表并获取Names变量中不包含的所有名称 所以在上面的例子中,如果我运行一个查询,结果应该是John 我不知道如何在这个问题中编写查询,我正在迭代名称并一次又一次地运行查询,我认为这是一种非常糟糕的方法。有人能提出最有效的方法吗?如果

我有一张表格:

ID           Name 
1            Ken
2            John
3            Tom

我在c代码中有以下变量: 变量名称//这是一些名字的列表,比如肯,汤姆

我需要一个查询,它遍历Names表并获取Names变量中不包含的所有名称

所以在上面的例子中,如果我运行一个查询,结果应该是John


我不知道如何在这个问题中编写查询,我正在迭代名称并一次又一次地运行查询,我认为这是一种非常糟糕的方法。有人能提出最有效的方法吗?

如果您需要在T-SQL中执行此操作,您可以执行以下操作:

SELECT *
FROM table
WHERE Name NOT IN (<<comma separated list of values here>>)
这可以在内联或存储过程中完成

如果您可以使用Entity Framework,则表明您可以使用.Net 4.0,因此您应该能够使用,那么您可以使用类似于以下答案的内容:


请尝试使用电子邮件发送数据。在这一点上,您可以正常地进行比较。

如果表像您所显示的那样简单,那么我无法想象它有超过几千条记录。在这种情况下,表扫描应该是一种可接受的解决方案

select Name
  from tbl
 where ', ' + @names + ', ' not like '%, ' + name + ', %';

参数化@names变量。

您看过SQL IN语句了吗?这似乎是您最好的选择,但请谨慎行事,并确保您正在验证names变量是否不包含任何可用于SQL注入的内容。一种简单的测试方法是包含O'Reilley这个名字。更多信息:您正在使用Lync吗?张贴您的代码。@DavidStratton-我在这里如何使用?Tom可能会建议,从名称中选择*,其中名称KenIs var将某种数组、列表等的集合或逗号分隔的字符串命名为ken?@user15741给出了确切的答案。。。