Пример #1
0
        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;
        }
Пример #2
0
        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;
        }
Пример #3
0
        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;
        }