我正在创建一个数据库查询,当我将数据添加到数据库时,它会用我插入的值更新所有行。代码:
string SQL = "Update Stock_Entry Set No_of_Items=No_of_Items+" (Convert.ToDecimal(textBox_Stock.Text));
DBConnection database = new DBConnection();
int rslt = database.updatetValues(SQL);
if (rslt > 0)
我发现我有一个严重的问题,因为我从来没有提到要更新哪一行。所以我将我的编码编辑为
string SQL = "Update Stock_Entry Set No_of_Items=No_of_Items+" + (Convert.ToDecimal(textBox_Stock.Text)) +
"Where Item_Code="+ textBox_ItemId.Text ;
DBConnection database = new DBConnection();
int rslt = database.updatetValues(SQL);
if (rslt > 0)
此方法给我一个错误“无法将 varchar 值转换为 int”并提及我的项目代码具有 varchar 值。所以我在删除 varchar 项目代码后尝试了这种方式,当我在项目代码中没有任何 varchar 值时,此方法有效。但是我不能将我的项目代码列保留为 int,因为我必须在项目代码中提供一个字母字符。
最佳答案
我假设 Item_Code 是数据库中的一个 Varchar 字段?
您需要将代码修改为:
string SQL = "Update Stock_Entry Set No_of_Items=No_of_Items+" + (Convert.ToDecimal(textBox_Stock.Text)) +
"Where Item_Code='"+ textBox_ItemId.Text + "'";
因为您想要在 where 子句中使用 varchar 值,所以您需要像这样将值放在撇号之间:
WHERE Item_Code = 'theitem'
关于c# - 在已可用列中向数据库添加值时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21603323/