ASP.NET Core — ошибка CS1929 «десятичный» не содержит определения для «TrimStart»C#

Место общения программистов C#
Ответить
Anonymous
 ASP.NET Core — ошибка CS1929 «десятичный» не содержит определения для «TrimStart»

Сообщение Anonymous »


В веб-API ASP.NET Core с Dapper и Oracle DB SAL_AMT определяется как строка, то есть VARCHAR2 в Oracle, и имеет ведущие нули.< /п> Например, SAL_AMT = "0003300000" вместо просто 33000

Однако я хочу, чтобы ответ для SAL_AMT (сумма зарплаты) имел тип данных decimal.

Я хочу удалить все ведущие нули (0) слева, а затем разделить оставшиеся данные (результат) на 100, чтобы получить окончательный результат.

Например:

"0003300000" => "3300000"/100 = 33000 Итак, я использовал:

публичный десятичный SalaryAmount { get; набор; } вместо:

публичная строка SalaryAmount {get; набор; } Но я получаю вот такую ​​ошибку:

Ошибка CS1929
'decimal' не содержит определения для 'TrimStart', а лучшая перегрузка метода расширения 'MemoryExtensions.TrimStart(ReadOnlySpan, char)' требует приемника типа 'System.ReadOnlySpan'

Пожалуйста, помогите решить проблему.

Полный код — EmployeeResponseDto:

публичный класс EmployerResponseDto { общественная строка EmpCode {получить; набор; } общественная строка FirstName {get; набор; } общественная строка LastName {get; набор; } общественная строка SalaryAmount {get; набор; } } Уровень репозитория:
публичный класс EmployeeRepository: IEmployeeRepository { частный только для чтения IConfiguration _configuration; частный ILogger только для чтения _logger; общедоступный TransactionRepository (регистратор ILogger, IКонфигурация конфигурации) { _logger = регистратор; _configuration = конфигурация; } public async Task GetEmployeePaymentAsync(EmployeeRequestDto requestDto) { вар ответ = новый Response(); пытаться { используя (var _dbConnectionAsync = new OracleConnection(_configuration.GetConnectionString("DefaultConnection"))) { ждут _dbConnectionAsync.OpenAsync(); вар запрос = @" ВЫБЕРИТЕ EMP_CODE КАК EmpCode, FIRST_NAME КАК Имя, LAST_NAME КАК Фамилия, SAL_AMT AS SalaryAmount ОТ EMPLOYEE_SALARY_TBL ГДЕ EMP_CODE = :EmpCode И EMP_REF = :EmpRef"; var сотрудникPayments = ждут _dbConnectionAsync.QueryAsync(запрос, новый { EmpCode = requestDto.EmpCode, EmpRef = requestDto.EmpRef }); if (employeePayments == null || !employeePayments.Any()) { response.Message = "Данные не найдены!"; ответ.Успешный = ложь; обратный ответ; } var mappedPayments = сотрудниковPayments.Select(t => { вернуть новый сотрудникеResponseDto { EmpCode = t.EmpCode, Имя = t.Имя, Фамилия = t.Фамилия, SalaryAmount = Convert.ToDecimal(t.SalaryAmount.TrimStart('0')) / 100 }; }); ответ.Данные = сопоставленные платежи; ответ.Успешный = правда; обратный ответ; } } поймать (Исключение ex) { ответ.Успешный = ложь; обратный ответ; } }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»