【问题标题】:extract data from a dataset从数据集中提取数据
【发布时间】:2011-04-18 11:01:43
【问题描述】:

我有一个从 sql server 中的存储过程填充的数据集。我有一列可以说有一组值。我不知道这些值是什么。我所知道的是它们属于“字符串”类型。我想从该列中提取所有不同的值。

【问题讨论】:

    标签: c# sql sql-server dataset


    【解决方案1】:

    您可以简单地使用 DataTable 的 Select 方法:

    DataRow[] extractedRows = 
         yourDataSet.Tables["YourTableName"].Select("YourColumnName = 123");
    

    【讨论】:

    • 对不起。我必须改写我的问题。我的错。我有一列可以说一组值。我不知道这些值是什么。我所知道的是它们的类型是字符串。我想从该列中提取所有不同的值。我希望现在很清楚。
    【解决方案2】:

    您还可以使用 Linq 来查询您的数据表。这是 MS 网站上一些示例的链接 - http://msdn.microsoft.com/en-us/vbasic/bb688086.aspx

    【讨论】:

      【解决方案3】:

      您可以使用DataView 并将其RowFilter 设置为所需的条件:

      var view = new DataView(dataset.Tables["Table"]);
      view.RowFilter = "Column = 42";
      

      更新:根据您更新的问题,您可以使用 LINQ:

      var table = dataset.Tables["Table"].AsEnumerable();
      var distinctValuesForColumn = 
        table.Select(row => (string)row["Column"]).Distinct();
      

      【讨论】:

      • 对不起。我必须改写我的问题。我的错。我有一列可以说一组值。我不知道这些值是什么。我所知道的是它们的类型是字符串。我想从该列中提取所有不同的值。我希望现在很清楚。
      • 请更新问题本身,而不是在评论中提供此类信息。
      • 感谢 Jordao 的想法。但是它给我一个错误。它不能识别 Distinct()。我是否必须将变量类型从 var 更改为某些类型才能使其工作?
      • 我使用的正是您输入的内容,只是我使用的是 dataset.Tables[0] 而不是 Tables["table name"],因为我的数据集仅包含 1 个表。
      • Distinct 是 LINQ 的一部分,它在 .NET Framework 3.5 中首次亮相。如果Select 有效,奇怪的是Distinct 无效。查看您是否是 using System.Linq;,以及您所针对的框架版本。您是否也使用了AsEnumerable 电话?
      【解决方案4】:

      我希望下面的声明能达到你的目的

      ds.Tables["TableName"].DefaultView.ToTable( true, "columnName"); //For Dataset (true means distinct)
      

         `ds.Tables[0].DefaultView.ToTable( true, "columnName");
      

      //对于tableindex为0的数据集

      dt.DefaultView.ToTable( true, "columnName"); //For Datatable
      
      //Syntax is like Datatable.DefaultView.ToTable( Distinct true/false, “ColumnName”);
      

      MSDN:http://msdn.microsoft.com/en-us/library/wec2b2e6.aspx

      【讨论】:

        猜你喜欢
        • 2020-06-21
        • 1970-01-01
        • 2014-07-30
        • 1970-01-01
        • 1970-01-01
        • 2017-10-08
        • 1970-01-01
        • 2019-04-10
        • 2020-03-04
        相关资源
        最近更新 更多