예제 #1
0
        public CmdQuery(string commandText)
            : base(commandText)
        {
            if (!string.IsNullOrEmpty(_part2))
            {
                var parameter = new CmdParameter(_part2, this);
            }

            DataSource = DataSourceManager.CreateDataSource(DataSourceManager.GetInitializerTypeByName(CmdInitializer.Name),
                                                   CmdInitializerProperties.ToDictionary(
                                                       property =>
                                                       DataSourceManager.GetInitializerPropertyNameByCmd(property.Name),
                                                       property => this[property.Name]));
            DataSource.Initialize();
        }
예제 #2
0
        public CmdParameter(string commandText, ICommandWithParameters command)
            : base(commandText)
        {
            string part1;
            string part2;

            if (CommandExists)
            {
                GetParts(_part2, out part1, out part2);
            }
            else
            {
                throw new Exception(string.Format("Неизвестный параметр: {0}", _part2));
            }

            if (IsInitializer)
            {
                Value = string.Empty;
            }
            else
            {
                while (!IsInitializer &&
                    part1.StartsWith("/"))//Смотрим все флаги, сомнительное решение но пока так...
                {
                    switch (part1)
                    {
                        case "/c"://Искать в секции ConnectionString
                            IsConnectionString = true;
                            break;
                        case "/a"://Искать в секции AppSettings
                            IsAppSetting = true;
                            break;
                        default:
                            throw new Exception(string.Format("Неизвестный флаг: {0}", part1));
                    }
                    GetParts(part2, out part1, out part2);
                }
                _part2 = part2;
                Value = part1;
            }
            command.Parameters.Add(this);
            if (!string.IsNullOrEmpty(_part2))
            {
                var parameter = new CmdParameter(_part2, command);
            }
        }