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

标签 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);

对于每一列,我想选择 col1col5

我试图将鼠标悬停在数据集对象上或向下钻取内容,但我无法弄清楚我需要的数据位于何处。

感谢您的帮助。

最佳答案

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

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

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

关于c# - 如何从数据集中检索特定列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34185880/

相关文章:

c# - 错误 : No Entity Framework provider found for the ADO. 具有不变名称 'System.Data.SqlClient' 的 NET 提供程序

c# - 尝试将图像保存到 wwwroot 时出现 DirectoryNotFoundException

c# - 带可更换元素的 key 系列

c# - EntityFramework Any 生成两条 EXISTS sql 语句

c# - ADO.NET:将 DataTable 转换为 DataRow 数组

.net - (DevForce、OpenAccess、LLBLGen)与 Entity Framework 4 和 CTP4

c# - 如何检查表存在于 db sqlite xamarin iOS

c# - 暂停,直到关闭外部窗口句柄或按下按钮

sql - 如何在存储过程中选择插入的值?

sql-server - 替换数据库中的阿拉伯字母