示例#1
0
        public async Task <CommandResponse> ExecuteProcedure(ProcedureName procedureName, DbRequestToken token, params DataBaseParameter[] parameters)
        {
            var command = token.Connection.CreateCommand();

            command.CommandType = CommandType.StoredProcedure;
            command.CommandText = procedureName.GetStringName();
            command.Transaction = token.Transaction;
            AddParamsToCommand(command, parameters);
            var reader = await command.ExecuteReaderAsync();

            var resp = new CommandResponse();

            for (int i = 0; i < reader.FieldCount; i++)
            {
                resp.ColumnNames.Add(reader.GetName(i));
            }
            while (reader.Read())
            {
                var currentVals = new List <object>(reader.FieldCount);
                for (var i = 0; i < reader.FieldCount; ++i)
                {
                    currentVals.Add(reader[i]);
                }
            }
            return(resp);
        }
示例#2
0
        public async Task <int> ExecuteProcedureNonQuery(ProcedureName procedureName, DbRequestToken token, params DataBaseParameter[] parameters)
        {
            var command = token.Connection.CreateCommand();

            command.CommandType = CommandType.StoredProcedure;
            command.CommandText = procedureName.GetStringName();
            command.Transaction = token.Transaction;
            AddParamsToCommand(command, parameters);
            return(await command.ExecuteNonQueryAsync());
        }
        private async Task <DataBaseParameter> GetDbParameter(ProcedureName procedureName, DbRequestToken token, ProcedureParameter parameter)
        {
            var dbParam = new DataBaseParameter(parameter);

            if (parameter.DbType.HasValue)
            {
                return(dbParam);
            }
            var procNameParam = new ProcedureParameter("procedureName", procedureName.GetStringName())
            {
                DbType = SqlDbType.NVarChar
            };
            var res = (await ExecProcedure <ProcedureParameterDescription>(ProcedureName.spInternalGetProcedureParameters, token, procNameParam)).Single();

            dbParam.DbType = (SqlDbType)Enum.Parse(typeof(SqlDbType), res.ToString());
            return(dbParam);
        }