2014-11-04 106 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

相關問題