关于使用double和im卡在某处有一个问题?

问题描述 投票:0回答:1

我想将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

'你的SQL语法有错误;查看与MySQL服务器版本对应的手册,以便在''7,58'附近使用正确的语法,其中(Adı,Soyadı)'Egemen','Ören''在第1行。

我不知道如何解决它请帮助我

c# mysql integer double
1个回答
0
投票

看来,你可能会遇到问题

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

想象一下,当mesai3.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();
   } 
   ... 
© www.soinside.com 2019 - 2024. All rights reserved.