|
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文件系统的反删除方法
|