【发布时间】:2014-03-09 13:17:54
【问题描述】:
我只需要通过计算一些数字来更新我数据库中的一些单元格。但我不知道为什么仍然会弹出一个异常:Converting data type varchar to float。有什么想法可能是错的吗?我看了这个大概 2 小时...
Item oldItem = new Item();
Item newItem = new Item();
oldItem = cmbItems.SelectedItem as Item;
newItem.PredaneMnozstvo = oldItem.PredaneMnozstvo + 1;
newItem.Mnozstvo = oldItem.Mnozstvo - 1;
if(!String.IsNullOrEmpty(txtAkcia.Text))
newItem.HrubyZisk = oldItem.PredajnaCena - oldItem.NakupnaCena - double.Parse(txtAkcia.Text);
else
newItem.HrubyZisk = oldItem.PredajnaCena - oldItem.NakupnaCena;
newItem.CistyZisk = Math.Round(newItem.HrubyZisk * 0.81,2);
broker.UpdatePredal(newItem, oldItem);
public void UpdatePredal(Item newItem, Item oldItem)
{
try
{
string sql = "UPDATE Sklad SET Mnozstvo= '"+newItem.Mnozstvo+"', PredaneMnozstvo= '"+newItem.PredaneMnozstvo+"',HrubyZisk= '"+newItem.HrubyZisk.ToString()+"', CistyZisk='"+newItem.CistyZisk+"' WHERE ID=" + oldItem.Id;
cmd = new SqlCommand(sql, connection);
connection.Open();
cmd.ExecuteNonQuery();
}
catch (Exception eX)
{
MessageBox.Show(eX.Message);
}
}
有什么建议吗?
【问题讨论】:
-
哪一行抛出异常?此外,您不应连接 SQL 命令并改用parameters
-
请出示完整的例外情况,我们不是通灵者。
-
在 ExecutingnonQuery 之后,我不知道为什么因为我的类型都很好,不需要转换任何东西......