2011-06-21 130 views
3

我是LINQ to SQL世界的新手 - 所以我很抱歉,如果問題很蠢:) - 我只是找不到任何答案在互聯網上:LINQ to SQL - 從Var獲取字符串

我有一個有兩列的表格 - 「Batch_Name」和「Batch_id」。 用戶選擇批次ID並且應用程序需要返回其名稱。

我有這樣的C#代碼來提取批次名稱根據批次ID(「myBatchNum」):

 var thisBatch = from x in gridDB.batches 
         where x.batch_id == myBatchNum 
         select new { x.batch_name }; 


     lblBatchName.Text = thisBatch.First().ToString(); 

這摘自適當的批次名稱,但是當我嘗試顯示在名字標籤控制,我得到這個結果(「NightBatch是在DB的名稱):

{batch_name = NightBatch}

我如何提取該批次的名字從‘?thisBatch’正確的標籤控制

非常感謝, Nim。

回答

4

目前尚不清楚您是否需要使用匿名類型。只需使用:

var thisBatch = from x in gridDB.batches 
       where x.batch_id == myBatchNum 
       select x.batch_name; 

lblBatchName.Text = thisBatch.First(); 

或者,如果你沒有希望仍然使用匿名類型,只需使用你已經建立有效的財產:

var thisBatch = from x in gridDB.batches 
       where x.batch_id == myBatchNum 
       select new { x.batch_name }; 

lblBatchName.Text = thisBatch.First().batch_name; 
+0

非常感謝您的幫助和詳細的解釋! – Nim

1

末爲您刪除ToString()已經只選擇名稱

2

您正在創建一個名爲batch_name的屬性的匿名類型。 CHAGE你的代碼如下返回字符串:

var thisBatch = from x in gridDB.batches 
       where x.batch_id == myBatchNum 
       select x.batch_name; 
0

您對您在select聲明所產生的匿名類型的主叫ToString()。試試這個:

lblBatchName.Text = thisBatch.First().batch_name;