2013-03-29 48 views
0

我想從使用LinqToExcel庫的Excel工作表中取出不同的值。LinqToExcel使用DISTINCT關鍵字時出錯

我不斷收到錯誤

「{」 語法錯誤(缺少操作員)在查詢表達式 '(MOD)'。 「}」

我已經嘗試了一切,並能似乎並沒有從這一欄中拿出不同的價值觀。

任何援助將不勝感激。

由於事先

代碼如下。

public class WorksheetRow 
{ 
    public String CPT { get; set; } 
    public String MOD { get; set; } 
    public String DESCRIPTION { get; set; } 
    public double FEE { get; set; } 
} 

public class FileUtilsController : Controller 
{ 
    // 
    // GET: /FileUtils/ 

    public ActionResult Index() 
    { 
     return View(); 
    } 

    public ActionResult FileUpload() 
    { 
      return View(); 


    } 

    // This action handles the form POST and the upload 
    [HttpPost] 
    public ActionResult FileUpload(HttpPostedFileBase file) 
    { 
     // Verify that the user selected a file 
     if (file != null && file.ContentLength > 0) 
     { 
      // extract only the fielname 
      var fileName = Path.GetFileName(file.FileName); 
      // store the file inside ~/App_Data/uploads folder 
      var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName); 
      file.SaveAs(path); 

      var excel = new ExcelQueryFactory(path); 
      List<String> worksheetNames = excel.GetWorksheetNames().ToList(); 
      String FirstWorksheet = worksheetNames[0]; 
      //Query Column Names 
      //The GetColumnNames() method can be used to retrieve the list of column names in a worksheet. 
      IEnumerable<String> ProcCodeModifiers = (from row in excel.Worksheet<WorksheetRow>(FirstWorksheet) 
                where row.MOD != null 
                select row.MOD).Distinct(); 


      ViewData["Modifiers"] = ""; 
      foreach (String item in ProcCodeModifiers) 
      { 
       ViewData["Modifiers"] += item + ", "; 
      } 

      // redirect back to the index action to show the form once again 
//    return RedirectToAction("Index", "Home"); 

     } 

     return View(); 

    } 

回答

0

我必須做更多的研究,爲什麼這個錯誤發生,但一個快速的解決方法是執行鮮明的()操作之前的查詢轉換到一個列表。

下面是一個代碼示例

IEnumerable<String> ProcCodeModifiers = (from row in excel.Worksheet<WorksheetRow>(FirstWorksheet) 
             where row.MOD != null 
             select row.MOD).ToList().Distinct(); 
+0

它的工作就像一個魅力。謝謝! –

相關問題