Пример #1
0
        /// <summary>
        /// Get parameter descriptor.
        /// </summary>
        /// <param name="parameterName">Parameter name.</param>
        /// <returns>Data parameter descriptor.</returns>
        private DataParameterGroupUnit GetParameterGroupDescriptor(string parameterName)
        {
            DataParameterGroupUnit result = null;

            if (!string.IsNullOrWhiteSpace(parameterName))
            {
                if (this.dataCommandConfig.ParameterGroupCollection != null && this.dataCommandConfig.ParameterGroupCollection.Any())
                {
                    result = this.dataCommandConfig.ParameterGroupCollection.FirstOrDefault(para => string.Equals(para.Name.Trim('@'), parameterName.Trim('@'), StringComparison.OrdinalIgnoreCase));
                }
            }

            return(result);
        }
Пример #2
0
        /// <summary>
        /// Add parameter group to command.
        /// </summary>
        /// <param name="parameterGroupName">Parameter group name.</param>
        /// <param name="parameterValues">Parameter group value.</param>
        public void AddGroupParameter(string parameterGroupName, IEnumerable parameterValues)
        {
            DataParameterGroupUnit currentParameterGroupDescriptor = this.GetParameterGroupDescriptor(parameterGroupName);

            if (currentParameterGroupDescriptor == null)
            {
                throw new ArgumentNullException(string.Format(@"Not find parameter group ""{0}"" from configure file", parameterGroupName));
            }

            StringBuilder finalParameters = new StringBuilder();
            int           index           = 1;

            foreach (object value in parameterValues)
            {
                this.AddInParameter(string.Concat(currentParameterGroupDescriptor.Name, index), currentParameterGroupDescriptor.DbType, currentParameterGroupDescriptor.Size, currentParameterGroupDescriptor.Precision, currentParameterGroupDescriptor.Scale, value);

                if (finalParameters.Length > 0)
                {
                    finalParameters.Append(", ");
                }

                finalParameters.Append("@");
                finalParameters.Append(parameterGroupName.Trim('@'));
                finalParameters.Append(index);

                index++;
            }

            string groupName = string.Concat(parameterGroupName);

            if (this._myGroupParameters.Value.ContainsKey(groupName))
            {
                this._myGroupParameters.Value[groupName] = string.Format("({0})", finalParameters.ToString());
            }
            else
            {
                this._myGroupParameters.Value.Add(groupName, string.Format("({0})", finalParameters.ToString()));
            }
        }