【问题标题】:How can I select what columns come in from a DataSet into a DataTable?如何选择从 DataSet 进入 DataTable 的列?
【发布时间】:2011-06-21 01:04:16
【问题描述】:

刚开始使用 Data,我希望我能正确地提出这个问题。如何选择从 DataSet 进入 DataTable 的列?我知道我可以使用...填充 DataTable。

DataTable table = dataSet1.Tables[0];

但这会引入所有列。如何仅使用某些列填充 DataTable?

我正在使用 .NET 3.5、C# 和 SQL CE 3.5 单表数据库。

谢谢。

【问题讨论】:

    标签: c# sql database sql-server-ce


    【解决方案1】:

    DataTable 在创建 DataSet 时实际上是通过 DataAdapter 填充的。运行查询后,将设置 DataTable 中的列。但是,您可以使用DataView 对 DataTable 应用额外的过滤器和列缩减,但是查询数据库和拉取数据的成本已经发生,因此您应该考虑确保您的查询不会拉回更多比你需要的。 MSDN 是一个很好的资源。

    当然,如果您刚刚学习这一点,那么值得一提的是,虽然 ADO.NET 对基础知识很重要,但您应该意识到最近有很多动力从原始 ADO.NET 转向 Entity Framework 之类的东西.虽然 SQL 永远不会消亡,也不应该消亡,但在使用 ADO.NET 时,您将不得不编写更多的管道代码,而不是使用漂亮的 ORM。 Check outtheseposts了解更多信息。

    【讨论】:

      【解决方案2】:
          // Assumes that connection is a valid SqlConnection object.
      
      string queryString = "SELECT CustomerID, CompanyName FROM dbo.Customers";
      SqlDataAdapter adapter = new SqlDataAdapter(queryString, connection);
      
      DataSet customers = new DataSet();
      adapter.Fill(customers, "Customers");
      
      DataTable table = customers.Tables[0];
      

      您可以放置​​要选择的列,而不是“CustomerID, CompanyName”。

      如需进一步学习,请查看此MSDN 链接。

      【讨论】:

        猜你喜欢
        • 2011-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-01
        • 1970-01-01
        • 2013-06-25
        • 1970-01-01
        相关资源
        最近更新 更多