Example #1
0
        internal IEnumerator <T> ExecuteReader <T>(SqlCommandModel model)
        {
            Type            TypeT = typeof(T);
            ConstructorInfo ctor  = TypeT.GetConstructor(Type.EmptyTypes);

            if (ctor == null)
            {
                throw new InvalidOperationException($"Type {TypeT.Name} does not have a default constructor.");
            }
            SqlCommand sqlCommand = new(model.CommandText, _sqlConnection);

            sqlCommand.CommandType = model.CommandType;
            foreach (SqlCommandParameterModel parameter in model.CommandParameters)
            {
                sqlCommand.Parameters.Add(new SqlParameter()
                {
                    ParameterName = parameter.ParameterName,
                    DbType        = parameter.DataType,
                    Value         = parameter.Value
                });
            }
            _sqlConnection.Open();
            SqlDataReader reader = sqlCommand.ExecuteReader();

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    T newInst = (T)ctor.Invoke(null);
                    for (int i = 0; i < reader.FieldCount; i++)
                    {
                        string       propertyName = reader.GetName(i);
                        PropertyInfo propertyInfo = TypeT.GetProperty(propertyName);
                        if (propertyInfo != null)
                        {
                            object value = reader[i];
                            if (value == DBNull.Value)
                            {
                                propertyInfo.SetValue(newInst, null);
                            }
                            else
                            {
                                propertyInfo.SetValue(newInst, value);
                            }
                        }
                    }
                    yield return(newInst);
                }
            }
            _sqlConnection.Close();
        }
 public string ExecuteScalarSP(SqlCommandModel model)
 {
     try
     {
         _dbConnection.Open();
         var parameters = new DynamicParameters();
         parameters.Add(model.CommandParameters[0].ParameterName, model.CommandParameters[0].Value);
         return(_dbConnection.Query <Product>(model.CommandText, parameters, commandType: CommandType.StoredProcedure).First().ProductName);
     }
     finally
     {
         if (_dbConnection != null && _dbConnection.State == ConnectionState.Open)
         {
             _dbConnection.Close();
         }
     }
 }
 public void ExecuteNonQuery(SqlCommandModel model)
 {
     try
     {
         _dbConnection.Open();
         var parameters = new DynamicParameters();
         foreach (SqlCommandParameterModel parameter in model.CommandParameters)
         {
             parameters.Add(parameter.ParameterName, parameter.Value);
         }
         _dbConnection.Query(model.CommandText, parameters, commandType: CommandType.StoredProcedure);
     }
     finally
     {
         _dbConnection.Close();
     }
 }
Example #4
0
        internal void ExecuteNonQuery(SqlCommandModel model)
        {
            SqlCommand sqlCommand = new (model.CommandText, _sqlConnection);

            sqlCommand.CommandType = model.CommandType;
            foreach (SqlCommandParameterModel parameter in model.CommandParameters)
            {
                sqlCommand.Parameters.Add(new SqlParameter()
                {
                    ParameterName = parameter.ParameterName,
                    DbType        = parameter.DataType,
                    Value         = parameter.Value
                });
            }
            _sqlConnection.Open();
            sqlCommand.ExecuteNonQuery();
            _sqlConnection.Close();
        }
        public void ReadScalarProductADNSP()
        {
            string          connectionString = SecretsManager.GetSecrets <DatabaseSettings>("ConnectionString");
            AdoDotNetData   aaa   = new(connectionString);
            SqlCommandModel model = new SqlCommandModel()
            {
                CommandText       = "GetProductName",
                CommandType       = CommandType.StoredProcedure,
                CommandParameters = new SqlCommandParameterModel[] {
                    new SqlCommandParameterModel()
                    {
                        ParameterName = "@ProductName", DataType = DbType.String, Value = "ADO.NET Product"
                    }
                }
            };
            string productName = aaa.ExecuteScalar <string>(model);

            aaa.Dispose();
        }
Example #6
0
        internal T ExecuteScalar <T>(SqlCommandModel model)
        {
            SqlCommand sqlCommand = new(model.CommandText, _sqlConnection);

            sqlCommand.CommandType = model.CommandType;
            foreach (SqlCommandParameterModel parameter in model.CommandParameters)
            {
                sqlCommand.Parameters.Add(new SqlParameter()
                {
                    ParameterName = parameter.ParameterName,
                    DbType        = parameter.DataType,
                    Value         = parameter.Value
                });
            }
            _sqlConnection.Open();
            T data = (T)sqlCommand.ExecuteScalar();

            _sqlConnection.Close();
            return(data);
        }
 public IEnumerator <Product> ExecuteReaderSP <Product>(SqlCommandModel model)
 {
     try
     {
         _dbConnection.Open();
         var parameters = new DynamicParameters();
         foreach (SqlCommandParameterModel parameter in model.CommandParameters)
         {
             parameters.Add(parameter.ParameterName, parameter.Value);
         }
         return(_dbConnection.Query <Product>(model.CommandText, parameters, commandType: CommandType.StoredProcedure).GetEnumerator());
     }
     finally
     {
         if (_dbConnection != null && _dbConnection.State == ConnectionState.Open)
         {
             _dbConnection.Close();
         }
     }
 }
 public int ExecuteNonQuerySP(SqlCommandModel model)
 {
     SqlParameter[] parameters = new SqlParameter[model.CommandParameters.Length];
     for (int i = 0; i < parameters.Length; i++)
     {
         parameters[i] = new SqlParameter(
             model.CommandParameters[i].ParameterName,
             model.CommandParameters[i].Value
             );
     }
     if (parameters.Length == 4)
     {
         return(Database.ExecuteSqlRaw(model.CommandText, parameters[0], parameters[1], parameters[2], parameters[3]));
     }
     else if (parameters.Length == 2)
     {
         return(Database.ExecuteSqlRaw(model.CommandText, parameters[0], parameters[1]));
     }
     else
     {
         return(Database.ExecuteSqlRaw(model.CommandText, parameters[0]));
     }
 }