/// <summary>
        /// Initializes a new instance of the <see cref="ImportProcedureForm"/> class.
        /// </summary>
        /// <param name="dbProcedure">The Procedure DB object selected by the users to import data from.</param>
        /// <param name="importToWorksheetName">The name of the Excel worksheet where data will be imported.</param>
        public ImportProcedureForm(DbProcedure dbProcedure, string importToWorksheetName)
        {
            if (dbProcedure == null)
            {
                throw new ArgumentNullException("dbProcedure");
            }

            _dbProcedure               = dbProcedure;
            _previewDataSet            = null;
            _procedureParamsProperties = new PropertiesCollection();
            _selectedResultSetIndex    = -1;
            _sumOfResultSetsExceedsMaxCompatibilityRows = false;
            _workbookInCompatibilityMode = Globals.ThisAddIn.ActiveWorkbook.Excel8CompatibilityMode;

            InitializeComponent();

            Text = @"Import Data - " + importToWorksheetName;
            ProcedureNameLabel.Text  = dbProcedure.Name;
            OptionsWarningLabel.Text = Resources.ImportDataWillBeTruncatedWarning;
            ParametersPropertyGrid.SelectedObject = _procedureParamsProperties;
            AddSummaryFieldsCheckBox.Enabled      = Settings.Default.ImportCreateExcelTable;

            InitializeMultipleResultSetsCombo();
            PrepareParameters();
        }
Exemplo n.º 2
0
        /// <summary>
        /// Method cache procedure to class mapping
        /// </summary>
        /// <param name="type">Class of procedure</param>
        /// <param name="connectionString">Connection string</param>
        private static void CacheProcedure(Type type, string connectionString)
        {
            DbProcedureAttr procAttr = (DbProcedureAttr)type.GetCustomAttributes(typeof(DbProcedureAttr), false).FirstOrDefault();
            if (procAttr == null)
                throw new ArgumentException("Input type has not DbProcedureAttr attribute");

            DbProcedure proc = new DbProcedure()
            {
                Class = type,
                Name = procAttr.Name.ToUpper(),
                Database = connectionString,
                Perameters = new List<DbParameter>()
            };

            Dictionary<string, string> properties = new Dictionary<string, string>();
            foreach (var prop in type.GetProperties())
            {
                DbParameterAttr attr = (DbParameterAttr)prop.GetCustomAttributes(typeof(DbParameterAttr), false).FirstOrDefault();
                if (attr == null)
                    continue;

                DbParameter param = new DbParameter();
                param.OrdinalNumber = attr.OrdinalNumber;
                param.Name = String.IsNullOrEmpty(attr.Name) ? prop.Name.ToUpper() : attr.Name.ToUpper();
                param.Property = prop;
                proc.Perameters.Add(param);
            }
            cachedProcedures.Add(proc);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ImportProcedureForm"/> class.
        /// </summary>
        /// <param name="dbProcedure">The Procedure DB object selected by the users to import data from.</param>
        /// <param name="importToWorksheetName">The name of the Excel worksheet where data will be imported.</param>
        public ImportProcedureForm(DbProcedure dbProcedure, string importToWorksheetName)
        {
            _dbProcedure               = dbProcedure ?? throw new ArgumentNullException(nameof(dbProcedure));
            _previewDataSet            = null;
            _procedureParamsProperties = new PropertiesCollection();
            _selectedResultSetIndex    = -1;

            InitializeComponent();

            Text = @"Import Data - " + importToWorksheetName;
            ProcedureNameLabel.Text  = dbProcedure.Name;
            OptionsWarningLabel.Text = Resources.ImportDataWillBeTruncatedWarning;
            ParametersPropertyGrid.SelectedObject = _procedureParamsProperties;
            AddSummaryFieldsCheckBox.Enabled      = Settings.Default.ImportCreateExcelTable;

            ImportResultsetsComboBox.InitializeComboBoxFromEnum(DbProcedure.ProcedureResultSetsImportType.SelectedResultSet);
            PrepareParameters();
            InitializeCellStyles();
        }