2014-11-04 110 views
0

我试图从数据库检索数据到我的网页。当MVC中的结果不一致时,SQL返回两次相同的结果

我有3行:

**ser_num   prod_num CustomerId UserName meter_type meter_count** 
CAVC304222  M451nw  284  [email protected] Colour 5130 
CAVC304222  M451nw  284  [email protected] Mono  11311 
CNCX515111  HP 4200tn 284  [email protected] Mono  159527 

在我的网页,它返回:

**ser_num   prod_num CustomerId UserName meter_type meter_count** 
CAVC304222  M451nw  284  [email protected] Colour 5130 
CAVC304222  M451nw  284  [email protected] Colour 5130 
CNCX515111  HP 4200tn 284  [email protected] Mono  159527 

正如你可以看到它的返回CAV304222两次完全相同的,因为颜色。但它应该是1色1单声道。

我假设的东西是错误的,我控制器,但我不知道:

控制器:

public ActionResult Index() 
    { 
     var model = cpctx.vw_ReadingsEntry.Where(w => w.UserName == this.User.Identity.Name).ToList();    

     return View(model); 
    } 
} 

任何想法,为什么我的不能返回从数据库中正确的数据,因为它忽略了仪表类型单声道,并拉另一种颜色而不是...

谢谢。

+0

控制器中'model'中的行是什么?你认为什么代码? – CodeCaster 2014-11-04 11:07:38

+0

我对asp和model-view-controller一无所知,但你需要的是以某种方式告诉它使用“SELECT DISTINCT”insted的“SELECT” – David162795 2014-11-04 11:13:40

回答

0

如果你只是在不同的行之后,那么你需要指定是什么使行不同。如果ser_num标识不同的记录,那么你可以执行以下操作。

public ActionResult Index() 
    { 
     var model = cpctx.vw_ReadingsEntry 
      .Where(w => w.UserName == this.User.Identity.Name) 
      .GroupBy(x => x.ser_num) //Replace this with your ser_num property 
      .Select(x => x.First()) 
      .ToList();    

     return View(model); 
    } 
} 

希望这有助于。

+0

谢谢它帮助我 – 2014-11-04 16:37:30

相关问题