2017-07-31 36 views
1

我有一個數據表,其名稱爲dt從數據庫填充。 SQL命令是:從linq中選擇單個值

SELECT s.keyName,s.value FROM setting as s 

我填的dataTable後,我要選擇充滿單值DT。於是,我就做一些LINQ在這裏我顯示:

if (dtSetting.Rows.Count > 0) 
    { 
     var r1 = (from r in dtSetting.AsEnumerable() 
     where r.Field<string>("keyName") == "logoName" 
     select r.Field<string>("value")); 

     MessageBox.Show(r1.ToString()); 
    } 

,但我看不到s.value的價值和r1.show說

system.data.enumerableRowCollection`1 [system.String]

如何實現此代碼以獲取特定列的實際值?

回答

2

R1變量是IEnumarable,這樣你就可以通過應用指數獲得的價​​值。您也可以使用First()ElementAt()

if (r1.Count() > 0) 
    MessageBox.Show(r1.ToList()[0].ToString()); 
    //MessageBox.Show(r1.First()); 
    //MessageBox.Show(r1.ElementAt(0)); 
+0

您不能在IEnumerable上使用索引。首先將它投射到一個列表將工作。 – Carra

+0

謝謝@Carra –

+0

'ElementAt()'也是可以的 – derape

4

您的r1是IEnumerable < string>。您應該從中選擇一個項目。

例子:

MessageBox.Show(r1.First());