2016-01-05 36 views
-2

我试过两套代码更新按钮,并且所有这些都失败了。第一个错误是关于truncuated double,第二个错误是无法连接到DB。有人能告诉我什么是错的吗?更新按钮c#sql

1组代码:

void updateSection() 
     { 
      con.Close(); 
      cmd = new MySqlCommand("update deliver_supplies set Del_SSupplier ='" + SuppNameCombo.Text + "' and Del_SName ='" + txtProdName.Text + "' and Del_SBrand ='" + txtProdBrand.Text + "' and Del_SQty ='" + txtQty.Text + "' and Del_SReceived ='" + DTPReceived.Text + "' where Del_sID ='" + lblSuppIDChecker.Text + "'", con.con); 
      con.Open(); 
      reader = cmd.ExecuteReader(); 
     } 

第二套代码:

void updateSection() 
    { 
     string cmdText = @"update deliver_assets 
      set Del_ASupplier [email protected] 
       Del_AName = @name, 
       Del_ABrand = @brand 
       Del_AQty = @qty 
       Del_AReceived = @recv 
      where Del_aID = @id"; 
     using(MySqlConnection con = new MySqlConnection(.....)) 
     using(MySqlCommand cmd = new MySqlCommand(cmdText, con)) 
     { 
      cmd.Parameters.Add("@sup", MySqlDbType.VarChar).Value = SuppNameCombo.Text; 
      cmd.Parameters.Add("@name", MySqlDbType.VarChar).Value = txtProdName.Text; 
      cmd.Parameters.Add("@brand", MySqlDbType.VarChar).Value = txtProdBrand.Text; 
      cmd.Parameters.Add("@qty", MySqlDbType.VarChar).Value = Convert.ToDouble(txtQty.Text); 
      cmd.Parameters.Add("@recv", MySqlDbType.VarChar).Value = DTPReceived.Text; 
      cmd.Parameters.Add("@id", MySqlDbType.Int32).Value = Convert.ToInt32(lblAssetIDChecker.Text); 
      con.Open(); 
      int rowsUpdated = cmd.ExecuteNonQuery(); 
      if(rowUpdated > 0) 
       MessageBox.Show("Record updated"); 
     } 
    } 
+0

请说明确切的错误和它们发生的地方。你也可以添加你使用的数据库作为标签吗? –

+0

第一个代码的错误是:截断不正确DOUBLE值:'OMG Suppliers'(OMG供应商是一个测试数据。 –

+0

你的第一个查询似乎不是正确的。为什么你使用'和'而不是逗号' ,'like second query? – Sachin

回答

0

参数数量似乎是一个VARCHAR - 您使用的是双 - 检查你的数据类型。这是什么?使用正确的。第二个错误会显示您没有有效的SQLCommand。使用基本的SELECT语句检查连接,然后逐个添加参数。

+0

varchar被改为toInt32,所以还是两次相同的错误:Input String的格式不正确。好吧,我现在就做。 –

+0

我会在早上接受它...但ListView不是部分你的鳕鱼e - SQL是否正确执行 - 这是第一个问题。 –

+0

好的。我非常感谢你的帮助。我对这一切都很陌生。 这是一个更新函数的UDF,它主要关注更新数据库内的数据。 SQL工作正常,然后停止在cmd.Parameters.Add(“@ qty”,MySqlDbType.Int32).Value = Convert.ToInt32(txtQty.Text);而错误是输入字符串不是正确的格式。 –