转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> Sql Server >> 正文
SqlDataAdapter中Fill方法浅析         

SqlDataAdapter中Fill方法浅析

作者:闵涛 文章来源:闵涛的学习笔记 点击数:3136 更新时间:2007/11/14 11:58:45
value);
      private void ParameterInput(IDataParameterCollection parameters, StatementType typeIndex, DataRow row, DataTableMapping mappings);
      private void ParameterOutput(IDataParameterCollection parameters, StatementType typeIndex, DataRow row, DataTableMapping mappings);
      private static void QuietClose(IDbConnection connection, ConnectionState originalState);
      private static void QuietOpen(IDbConnection connection, out ConnectionState originalState);
      object ICloneable.Clone();
      public int Update(DataRow[] dataRows);
      public override int Update(DataSet dataSet);
      public int Update(DataTable dataTable);
      protected virtual int Update(DataRow[] dataRows, DataTableMapping tableMapping);
      public int Update(DataSet dataSet, string srcTable);
      private void UpdateRow(RowUpdatedEventArgs rowUpdatedEvent, string commandType);

      // Properties
      private IDbCommand DeleteCommand { get; }
      private IDbCommand InsertCommand { get; }
      private IDbCommand SelectCommand { get; }
      private IDbCommand UpdateCommand { get; }
      private MissingMappingAction UpdateMappingAction { get; }
      private MissingSchemaAction UpdateSchemaAction { get; }

      // Fields
      public const string DefaultSourceTableName = "Table";
      private static readonly object EventFillError;
      private bool hasFillErrorHandler;
}
 其中果然有Fill方法,并且还重载好多次
先看看 public override  int Fill(DataTable dataTable)方法
public override int Fill(DataSet dataSet)
{
      return this.Fill(dataSet, 0, 0, "Table", this.SelectCommand, CommandBehavior.Default);
}
 从override可以看出这个方法是重写了基类中的方法,而它的基类就是DataAdapter
那就在看看DataAdapter类中的Fill方法
public abstract class DataAdapter : Component, IDataAdapter
{
      // Methods
      protected DataAdapter();
      protected DataAdapter(DataAdapter adapter);
      protected virtual DataAdapter CloneInternals();
      protected virtual DataTableMappingCollection CreateTableMappings();
      protected override void Dispose(bool disposing);
      public abstract int Fill(DataSet dataSet);//就在这里
      public abstract DataTable[] FillSchema(DataSet dataSet, SchemaType schemaType);
      public abstract IDataParameter[] GetFillParameters();
      internal DataTableMapping GetTableMappingBySchemaAction(string sourceTableName, string dataSetTableName, MissingMappingAction mappingAction);
      internal int IndexOfDataSetTable(string dataSetTable);
      protected virtual bool ShouldSerializeTableMappings();
      ITableMappingCollection IDataAdapter.get_TableMappings();
      public abstract int Update(DataSet dataSet);

      // Properties
      public bool AcceptChangesDuringFill { get; set; }
      public bool ContinueUpdateOnError { get; set; }
      public MissingMappingAction MissingMappingAction { get; set; }
      public MissingSchemaAction MissingSchemaAction { get; set; }
      public DataTableMappingCollection TableMappings { get; }

      // Fields
      private bool acceptChangesDuringFill;
      private bool continueUpdateOnError;
      private MissingMappingAction missingMappingAction;
      private MissingSchemaAction missingSchemaAction;
      private DataTableMappingCollection tableMappings;
}
在看看DataAdapter中其他Fill方法
public int Fill(DataTable dataTable)
{
      if (dataTable == null)
      {
            throw ADP.FillRequires("dataTable");
      }
      IDbCommand command1 = this.SelectCommand;
      if (command1 == null)
      {
            throw ADP.MissingSelectCommand("Fill");
      }
      string text1 = dataTable.TableName;
      int num1 = base.IndexOfDataSetTable(text1);
      if (-1 != num1)
      {
            text1 = base.TableMappings[num1].SourceTable;
      }
      return this.Fill(dataTable, command1, CommandBehavior.SingleResult);
}
public int Fill(DataSet dataSet, string srcTable)
{
      return this.Fill(dataSet, 0, 0, srcTable, this.SelectCommand, CommandBehavior.Default);
}
protected virtual int Fill(DataTable dataTable, IDataReader dataReader)
{
      if (dataTable == null)
      {
            throw ADP.FillRequires("dataTable");
      }
      if (dataReader == null)
      {
            throw ADP.FillRequires("dataReader");
      }
      if (!dataReader.IsClosed && (dataReader.FieldCount > 0))
      {
            return this.FillFromReader(dataTable, null, dataReader, 0, 0, null, null);
      }
      return 0;
}
protected virtual int Fill(DataTable dataTable, IDbCommand command, CommandBehavior behavior)
{
      if (dataTable == null)
      {
            throw ADP.FillRequires("dataTable");
      }
      if (command == null)
      {
            throw ADP.MissingSelectCommand("Fill");
      }
      return this.FillFromCommand(dataTable, 0, 0, null, command, behavior);
}
public int Fill(DataSet dataSet, int startRecord, int maxRecords, string srcTable)
{
      return this.Fill(dataSet, startRecord, maxRecords, srcTable, this.SelectCommand, CommandBehavior.Default);
}
protected virtual int Fill(DataSet dataSet, string srcTable, IDataReader dataReader, int startRecor

上一页  [1] [2] [3]  下一页


[办公软件]在sybase中插入图片、PDF、文本文件  [办公软件]安装Sybase ASE
[办公软件]linux指令大全(完整篇)  [办公软件]Linux新手入门常用命令大全
[办公软件]在RedHat Linux 9里安装gaim0.80  [办公软件]浅谈Linux 下Java 1.5 汉字方块问题解决方法
[办公软件]Linux程序员必读:中文化与GB18030标准  [办公软件]linux指令大全
[办公软件]制作Linux启动盘的四种方法  [办公软件]Linux文件系统的反删除方法
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台