当我执行我的代码时出现此错误:必须声明标量变量“@qte”。 Connection newconnection = new Connection(); newconnection.Connection_Today(); SqlCommand comm = new SqlCommand(); comm.Connection = Connection.conn; comm.CommandText = "UPDATE F_DOCLIGNE SET DO_DateLivr = @date, DL_Qte = @qte, DL_Remise01REM_Valeur = @remise, DL_PrixUnitaire = @pu, DL_MontantHT = (@pu - ((@remise * @pu) / 100)) * @qte where AR_Ref = @code"; SqlParameter param = new SqlParameter("qte", SqlDbType.Int); SqlParameter param1 = new SqlParameter("remise", SqlDbType.Int); comm.Parameters.AddWithValue("@date", textBox_livr.Text); comm.Parameters.Add("@pu", SqlDbType.Int).Value = textBox_prix.Text; comm.Parameters.Add("@code", SqlDbType.VarChar).Value = textBox_art.Text; comm.ExecuteNonQuery();当我尝试时comm.Parameters.AddWithValue("@qte", DL_Qte)出现错误当前上下文中不存在名称“DL_Qte”我的变量 @qte 和 @remise 具有我数据库中字段的值,它们用于计算数量。如何在不执行过程的情况下声明标量变量?
3 回答
慕姐4208626
TA贡献1852条经验 获得超7个赞
如果,正如您在问题中暗示的那样,您想使用 DL_Qte 和 DL_Remise01REM_Valeur 字段的值,而不是更新它们 - 如果它们在您要更新的同一行中,您可以直接使用它们:
comm.CommandText = @"UPDATE F_DOCLIGNE SET DO_DateLivr = @date, DL_PrixUnitaire = @pu,
DL_MontantHT = (@pu - ((DL_Remise01REM_Valeur * @pu) / 100)) * DL_Qte
where AR_Ref = @code";
湖上湖
TA贡献2003条经验 获得超2个赞
例如,如果@qte 是一个已经来自数据库的值,则它不是一个变量。您使用变量将值从代码发送到数据库。在您的情况下(如果我理解正确的话)您需要重写更新语句:
UPDATE tablename SET column = (select 1) where otherecolum = @var
在offcourse的情况下,您必须提供“select 1”实现来查询正确的值。
- 3 回答
- 0 关注
- 246 浏览
添加回答
举报
0/150
提交
取消