You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

示例中DataTable添加至DataSet的方式及Fill方法相关疑问

解答你的DataTable与DataSet相关疑问

问题1:如何将DataTable添加到DataSet中?

有两种常用的实现方式:

  • 手动添加实例:先创建DataTable对象,配置好列结构、数据后,通过DataSet.Tables.Add()方法将其加入DataSet,示例代码如下:
    DataSet ds = new DataSet();
    DataTable dt = new DataTable("MyCustomTable");
    // 给dt添加列、填充数据的逻辑...
    ds.Tables.Add(dt);
    
  • 通过DataAdapter自动创建并添加:也就是你代码里用到的方式,调用DataAdapter.Fill(ds, "TableName")时,方法会自动生成对应名称的DataTable,填充查询结果后将它加入到DataSet的Tables集合中。

问题2:代码中新的DataTable是如何创建的?是否由SqlDataAdapter的.Fill方法创建?

没错,这个DataTable就是由SqlDataAdapter.Fill(ds, "TableName")方法创建并自动填充数据的。

关于你找不到Fill(DataSet, string)重载的困惑:你查看的System.Data.Common.DataAdapter基类文档里其实是存在这个重载的——它属于DataAdapter类的公共方法之一,可能你浏览文档时没留意到重载列表里的这一项。SqlDataAdapter继承自DbDataAdapter,而DbDataAdapter又继承自DataAdapter,所以它能直接调用这个基类的重载方法。

当你调用da.Fill(ds, "TableName")时,方法内部会按以下逻辑执行:

  1. 在传入的DataSet中查找名为"TableName"的DataTable,如果找不到就自动创建一个新实例
  2. 执行预设的SQL查询,把结果集填充到这个DataTable里
  3. 将填充好的DataTable加入到DataSet.Tables集合中,所以你能通过ds.Tables[0]获取到它

内容的提问来源于stack exchange,提问作者crazyPen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:05:46