Вставить числовые (десятичные) данные из значений текстового поля

Я смущен следующей проблемой;

У меня есть приложение C # (WindowsForms), которое я подключаю к БД SQL Server, и у меня нет проблем с INSERT, SELECT, UPDATE ... пока я не начал работать с числовыми данными;

Цель этого приложения - управлять сотрудниками, их контрактами, темпами работы, продолжительностью контрактов, почасовыми ставками ... и делать с этим забавные вычисления, ничегомагия.

По сути, мне нужно хранить некоторые значения (десятичные? Double? Float?) С форматом "0000,0000" в моей БД.

В моей БД я установил свою таблицу со всеми столбцами, где мне это нужно "000,0000" значения в десятичном виде

В моих формах у меня нетЯ указал какие-либо конкретные свойства для моих текстовых полей,

Для вставки я использую метод, для которого я определил десятичные аргументы

    public void createNewContract(int employeeId, string agency, string role, string contractType, string startDate,
    string endDate, string lineManager, string reportTo, string costCenter, string functionEng, string atrNo, string atrDate, string prNo, string prDate,
    string poNo, string poDate, string comments, decimal duration, decimal workRatePercent, string currency, decimal hourlyRate, decimal value)
{
    if (conn.State.ToString() == "Closed")
    {
        conn.Open();
    }
    SqlCommand newCmd = conn.CreateCommand();
    newCmd.Connection = conn;
    newCmd.CommandType = CommandType.Text;
    newCmd.CommandText = "INSERT INTO tblContracts (CreatedById, CreationDate, EmployeeId, Role, ContractType, StartDate, "
    + "EndDate, Agency, LineManager, ReportTo, CostCenter, FunctionEng, AtrNo, AtrDate, PrNo, PrDate, PoNo, PoDate, Comments, Duration, WorkRatePercent, Currency, HourlyRate, Value)"
    + "VALUES ('" + connectedUser.getUserId() + "','" + DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss") + "','" + employeeId + "','" + role + "','" + contractType
    + "','" + startDate + "','" + endDate + "','" + agency + "','" + lineManager + "','" + reportTo + "','" + costCenter + "','" + functionEng + "','" + atrNo + "','" + atrDate + "','" + prNo
     + "','" + prDate + "','" + poNo + "','" + poDate + "','" + comments + "','" + duration + "','" + workRatePercent + "','" + currency + "','" + hourlyRate + "','" + value + "')";
    newCmd.ExecuteNonQuery();
    MessageBox.Show("Contract has been successfully created", "Completed", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

(с помощью этого метода мне нужно всего лишь вставить как 00,0000 длительность (nb часов), процент рабочей ставки, почасовую ставку (деньги в валюте) и значение (деньги в валюте))

Чтобы захватить значения моих текстовых полей и отправить их через мой методcreateNewContrat»Я пробовал Convert.ToDecimal (this.txtDuration.Text) и много других вещей, которые показались мне полезными, но я нене могу понять механика, и яЯ, конечно, не использую самое практичное / умное решение ...

Я продолжаю получать следующую ошибку;

System.FormatException: формат файлане д 'EntréЭто неверно.= Формат строки ввода / ввода неверный

 System.Number.StringToNumber (String str, NumberStyles, NumberBuffer & число, информация NumberFormatInfo, логическое значение parseDecimal)

 System.Number.ParseDecimal (строковое значение, параметры NumberStyles, NumberFormatInfo numfmt)

 System.Convert.ToDecimal (String value)

Чтобы вы посоветовали?

Ответы на вопрос(2)

Ваш ответ на вопрос