如何从数据集中检索特定列?

时间:2015-12-09 18:03:54

标签: c# sql-server ado.net

这是查询数据库的行。

string sql = "SELECT col1, col2, col3, col4, col5"
           + "FROM MyTable"
           + "WHERE condition";

DataSet standardResults = SqlHelper.ExecuteDataset(
    m_ConnectionString,
    CommandType.Text,
    sql);

对于每一栏,我想选择 col1 col5

我试图将鼠标悬停在数据集对象上或向下钻取内容,但我无法确定我需要的数据所在的位置。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

根据您发布的代码,我可以假设 SqlHelper.ExecuteDataset返回DataSetDataSet包含DataTables的集合,您可以使用索引来获取它们。在您的情况下,只有一个DataTable,因为您有一个查询的结果。因此,standardResults.DataTables[0]会与您的数据所在的DataTable相关联。这就是说,我认为您可以使用LINQ公平地查询DataTable并获得您想要的结果。像这样:

var results = standardResults.DataTables[0]
                             .AsEnumerable()
                             .Select(item=>new 
                             {
                                Col1 = x.Field<string>("col1"),
                                Col5 = x.Field<string>("col5")    
                             });

但是,我必须指出,我没有看到选择额外列的原因,col2col3col4。如果你不需要它们,为什么它们在select语句中呢?