Есть проблема с использованием double, и я где-то застрял?

Я хочу добавить 0,50 к целому числу, просто я запутался. Я не знаю, как это сделать. Вот код;

if (checkBox1.Checked)
{
    keko.Open();

    double mesai = Convert.ToDouble(textBox4.Text);
    mesai = mesai + 0.50;
    double maaş = Convert.ToDouble(textBox4.Text);
    maaş += 1;
    textBox4.Text = mesai.ToString() + maaş.ToString();

    MySqlCommand cmd = new MySqlCommand(
      "Update calisanlist Set Gun '" + textBox4.Text + "' where (Adı,Soyadı) '" + textBox1.Text + "','"+textBox2.Text+"'", 
       keko);

    cmd.ExecuteNonQuery();

    keko.Close();

Под кнопкой есть флажок. Если я нажму кнопку, не установив флажок, он добавится 1, хорошо, здесь нет проблем. Но когда я устанавливаю флажок и нажимаю кнопку, у меня появляется сообщение об ошибке.

MySql.Data.MySqlClient.MySqlException:

'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''7,58' where (Adı,Soyadı) 'Egemen','Ören'' at line 1'.

Я не знаю, как это решить, пожалуйста, помогите мне

Используйте параметры в своем операторе SQL и cmd.Parameters.AddWithValue, чтобы добавить их значения в команду. Это не только предотвращает SQL-инъекцию, но и позволяет избежать проблемы форматирования, связанной с языком и региональными параметрами, с которой вы сталкиваетесь. Наконец, в вашем SQL есть несколько синтаксических ошибок; попробуйте получить инструкцию прямо в MySQL Workbench, прежде чем копировать ее в свой код C#.

Bradley Grainger 10.09.2018 21:58
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Кажется, у вас вполне может быть проблема в

   textBox4.Text = mesai.ToString() + maaş.ToString();

Представьте, что mesai - это 3.5, тогда как maaş - это 4.1: у вас будет 3.54.1 в textBox4.Text, который не является значением действительныйdouble. Вы, наверное, имеете в виду

   double mesai = Convert.ToDouble(textBox4.Text) + 0.5;
   //TODO: check isn't it a typo? Both mesai and maaş are from the same textBox4.Text
   double maaş = Convert.ToDouble(textBox4.Text) + 1;

   textBox4.Text = (mesai + maaş).ToString();

Не жесткий код запрос, а параметризовать это

   ... 

   // Keep sql readable
   // and parameterized
   string sql = 
     @"update calisanlist
          set Gun = @prm_Gun
        where Adı = @prm_Adi and
              Soyadı = @prm_Soyadı";  

   // wrap IDisposable into "using"
   using (MySqlCommand cmd = new MySqlCommand(sql, keko)) {
     // I don't know underlying database types, that's why I've put AddWithValue
     //TODO: change syntax to cmd.Parameters.Add(name, datatype).Value = ...
     cmd.Parameters.AddWithValue("@prm_Gun", Convert.ToDouble(textBox4.Text));
     cmd.Parameters.AddWithValue("@prm_Adi", textBox1.Text);
     cmd.Parameters.AddWithValue("@prm_Soyadı", textBox2.Text); 

     cmd.ExecuteNonQuery();
   } 
   ... 

Другие вопросы по теме