2013-07-26 75 views
-6

我想能够在WinForms应用程序中写入一个查询在C#Visual Studio 2012将不会显示匹配的记录。说我有一个记录在一个Access数据库,上面写着查询摆脱匹配记录C#

JOHN SMITH MALE 19 
JANE DOE FEMALE 19 
JOHN SMITH MALE 19 

和查询像这样

SELECT a.NAME FROM [NAME] a WHERE a.NAME = JOHN SMITH 
//but returns both records in the table 

我怎么能够只从表中返回一个单一的记录?任何帮助将非常感激。

+0

你对你的表的主键:

如果您正在使用,或在某些时候决定在C#中使用LINQ,有越来越一行时,像这样的一个FirstOrDefault()选项? –

+5

独特关键字 – MrFox

+0

尝试使用NOT IN statment中的子查询。 http://www.techonthenet.com/sql/in.php –

回答

5

您可以直接在SQL中执行此操作。
使用distinct得到的只有那没有重复

SELECT DISTINCT a.NAME 
FROM your_table a 
WHERE a.NAME = 'JOHN SMITH' 

或使用top只得到一定数额或纪录结果

SELECT top 1 a.NAME 
FROM your_table a 
WHERE a.NAME = 'JOHN SMITH' 
+1

他说在** C#** – dtsg

+2

他还说*我想能够在C#*中编写查询,这是.. –

+2

我建议直接在SQL中执行此操作。 –

-3

使用组通过在SQL语句[引用删除的记录造成业障的原因]或不同的[参考删除'坏业力的原因]

+2

免责声明:我没有降低你的评价,但我们通常认为w3schools是[不良资源](http://www.w3fools.com/)。此外,更好的答案包括代码示例以及外部资源的链接。 – jwiscarson

+1

jajaja还行。我知道很多人都有冲突,因为w3cschool不属于w3c;没问题...很高兴知道... – mtzaldo

1

如果我理解正确,你想修改你提供的查询,而不是返回

John Smith 
John Smith 

它只返回

John Smith 


如果是这样的话,那么你想

SELECT DISTINCT a.NAME FROM [NAME] a WHERE a.NAME = "JOHN SMITH" 

如果这不是你想做的事,那么也许你可以更新你的问题,以更好地解释你的问题是什么?

0

这是不是很清楚,如果你想在C#或SQL中做到这一点。 Juergen的答案很好。

return db.NameTable.Where(q => q.name == "John Smith").FirstOrDefault();