从linq中选择单个值

时间:2017-07-31 08:38:44

标签: c# sql linq sql-server-2008

我有一个从数据库填充的名为 dt 的dataTable。 SQL命令是:

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 个答案:

答案 0 :(得分:4)

你的r1是IEnumerable&lt;字符串&gt;。你应该从中选择一个项目。

示例:

   MessageBox.Show(r1.First());

答案 1 :(得分:3)

r1变量是IEnumarable,因此您可以通过应用索引来获取该值。您也可以使用First()ElementAt()

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