private IDataSetAdapter CreateDataSetAdapter(dataSetAdapter dsa) { IDbDataAdapter currentDbDataAdapter = (IDbDataAdapter)Activator.CreateInstance(_provider.DataAdapterObjectType); IDataSetAdapter currentDataSetAdapter = new DataSetAdapter(dsa.name, currentDbDataAdapter, _dataSource); currentDataSetAdapter.SelectCommand = CreateDataCommand(dsa.selectCommand); if(dsa.insertCommand != null) currentDataSetAdapter.InsertCommand = CreateDataCommand(dsa.insertCommand); if(dsa.updateCommand != null) currentDataSetAdapter.UpdateCommand = CreateDataCommand(dsa.updateCommand); if(dsa.deleteCommand != null) currentDataSetAdapter.DeleteCommand = CreateDataCommand(dsa.deleteCommand); if(dsa.tableMappings != null) { foreach(tableMapping tm in dsa.tableMappings) { DataTableMapping dtm = currentDataSetAdapter.TableMappings.Add( tm.sourceTable, tm.dataSetTable); if(tm.columnMappings != null) { foreach(columnMapping cm in tm.columnMappings) dtm.ColumnMappings.Add(cm.sourceColumn, cm.dataSetColumn); } } } if(dsa.populateCommands) currentDataSetAdapter.PopulateCommands(); return currentDataSetAdapter; }
public object Clone() { IDbDataAdapter dbDataAdapter = null; if(_dbDataAdapter is ICloneable) { dbDataAdapter = (IDbDataAdapter)((ICloneable)_dbDataAdapter).Clone(); } else { //TO DO: remove duplicate code (the same is also in DataSource) dbDataAdapter = (IDbDataAdapter)Activator.CreateInstance( _dataSource.Provider.DataAdapterObjectType); } DataSetAdapter newDataSetAdapter = new DataSetAdapter( _name, dbDataAdapter, _dataSource); newDataSetAdapter.SelectCommand = (IDataCommand)_selectCommand.Clone(); if(_updateCommand != null) newDataSetAdapter.UpdateCommand = (IDataCommand)_updateCommand.Clone(); if(_insertCommand != null) newDataSetAdapter.InsertCommand = (IDataCommand)_insertCommand.Clone(); if(_deleteCommand != null) newDataSetAdapter.DeleteCommand = (IDataCommand)_deleteCommand.Clone(); return newDataSetAdapter; }
public IDataSetAdapter CreateDataSetAdapter() { if(_templateDataAdapter == null) throw new DataAccessException(ResourceStringLoader.GetResourceString( "dataadapters_not_supported")); IDbDataAdapter dbDataAdapter = null; if(_templateDataAdapter is ICloneable) dbDataAdapter = (IDbDataAdapter)((ICloneable)_templateDataAdapter).Clone(); else dbDataAdapter = (IDbDataAdapter)Activator.CreateInstance( _provider.DataAdapterObjectType); IDataSetAdapter dataSetAdapter = new DataSetAdapter(dbDataAdapter, this); return dataSetAdapter; }