2015-04-02 33 views
0

我不得不根据数据的设定值,我想减去这些值并保存新的变量列一个小问题,这是我的代码:提取两个数据集的值,并将其保存在一个新的列

StrSQL = "Select * from Stocks"; 
rs = (DataSet) MethodClass.ConnectionToQuery(StrSQL); 
for (i = 0; i < rs.Tables[0].Rows.Count; i++) 
{ 
StrSQL = " Update Stocks Set "; 

// Error is in below line 
StrSQL = StrSQL + " Balance = '" + (rs.Tables[0].Rows[i]["RQty"]) - (rs.Tables[0].Rows[i]["IQty"]) + "'"; 

StrSQL = StrSQL + " Where ProductCode = '" + rs.Tables[0].Rows[i]["ProductCode"] + "'"; 
MethodClass.ConnectionToQueryCommand(StrSQL, "ExecuteNonQuery"); 
} 

错误是:

运算符“ - ”不能被应用于类型“字符串”和“对象”

+0

你读过您的错误信息?正如它所说的,你不能在'string'和'object'之间使用'-'运算符。两个'rs.Tables [0] .Rows [I] [ “RQty”]'和'rs.Tables [0] .Rows [I] [ “IQty”]''返回object'。 – 2015-04-02 06:23:24

+0

是的,我读了,但系统将接受第一个值作为一个字符串 – MaroofQaiser 2015-04-02 06:30:47

回答

0

我假定的操作数,该数量是一个整数值。 你必须解析值作为整数能够与它们来计算

更换

StrSQL = StrSQL + " Balance = '" + (rs.Tables[0].Rows[i]["RQty"]) - (rs.Tables[0].Rows[i]["IQty"]) + "'"; 

int Value1 = int.Parse(rs.Tables[0].Rows[i]["RQty"]); 
int Value2 = int.Parse(rs.Tables[0].Rows[i]["IQty"]); 
int Result = Value1 - Value2 ; 
StrSQL = StrSQL + " Balance = '" + Result + "'"; 
+0

是的,它可以完美运行。 – MaroofQaiser 2015-04-03 10:52:52

0
StrSQL = StrSQL + " Balance = '" + (Convert.ToDecimal(rs.Tables[0].Rows[i]["RQty"])) - (Convert.ToDecimal(rs.Tables[0].Rows[i]["IQty"])) + "'"; 
+0

'decimal.Parse'? – 2015-04-02 06:21:13

+0

@SonerGönül理想的数量应该是十进制值。 – prashant 2015-04-02 06:23:09

+0

所有值都是整数 – MaroofQaiser 2015-04-02 06:27:29

相关问题