示例#1
0
        /// <summary>
        /// Crée le paramètre de liste a ajouter à la commande.
        /// </summary>
        /// <param name="command">Commande.</param>
        /// <returns>Paramètre.</returns>
        public SqlServerParameter CreateParameter(SqlServerCommand command)
        {
            SqlServerParameter parameter = PopulateSqlServerParameter(command.CreateParameter());

            command.Parameters.Add(parameter);
            return(parameter);
        }
示例#2
0
 /// <summary>
 /// Crée une nouvelle instance.
 /// </summary>
 /// <param name="command">Commande.</param>
 public SqlCommandListener(SqlServerCommand command)
 {
     _command       = command;
     _logDisposable = ThreadContext.Stacks["NDC"].Push(_command._commandName);
     Analytics.Instance.IncValue(SqlServerManager.CounterSqlRequestCount, 1);
     Analytics.Instance.StartProcess(_command._commandName);
 }
示例#3
0
        /// <summary>
        /// Execute l'insertion en base de la collection.
        /// </summary>
        /// <param name="commandName">Nom de la commande.</param>
        /// <param name="dataSourceName">Nom de la dataSource.</param>
        /// <returns>Liste d'objet insérés.</returns>
        public ICollection <T> ExecuteInsert(string commandName, string dataSourceName)
        {
            SqlServerCommand command = new SqlServerCommand(dataSourceName, commandName, _sbInsert.ToString());

            CreateParameter(command);
            command.CommandTimeout = 0;
            BeanPropertyDescriptor primaryKey = _beanDefinition.PrimaryKey;

            using (SqlServerDataReader reader = command.ExecuteReader()) {
                while (reader.Read())
                {
                    T source = _index[reader.GetInt32(1).Value];
                    primaryKey.SetValue(source, reader.GetInt32(0).Value);
                }
            }

            return(_collection);
        }
示例#4
0
        /// <summary>
        /// Exécute une commande et lit le scalar.
        /// </summary>
        /// <typeparam name="T">Type de l'élement.</typeparam>
        /// <param name="cmd">Commande à exécuter.</param>
        /// <returns>Objet.</returns>
        public static T ReadScalar <T>(this SqlServerCommand cmd)
        {
            object value = cmd.ExecuteScalar();

            /* Valeur non nulle : on la cast et on la renvoie. */
            if (value != null)
            {
                return((T)value);
            }

            /* Valeur null : on renvoie seulement si le type est nullable. */
            if (typeof(T).IsClass || Nullable.GetUnderlyingType(typeof(T)) != null)
            {
                return((T)value);
            }

            /* Valeur null pour un type non nullable : exception. */
            throw new NotSupportedException("Null result is not supported.");
        }
示例#5
0
 /// <summary>
 /// Exécute une commande et lit le booléen.
 /// </summary>
 /// <param name="cmd">Commande à exécuter.</param>
 /// <returns>Objet.</returns>
 public static bool ReadBoolean(this SqlServerCommand cmd)
 {
     return(Convert.ToBoolean(cmd.ExecuteScalar()));
 }