【问题标题】:Syntax for UPDATE statement with parameters?带参数的 UPDATE 语句的语法?
【发布时间】:2016-09-18 23:50:57
【问题描述】:

这是有效的 SQL 语句:

DECLARE @LayOdds DEC = 1.5
DECLARE @Umarketiduselectionid VARCHAR(50) = '1.12677402748783'

UPDATE [dbo].[Fixtures]
SET [Fixtures].[Percent] = [Fixtures].[BackOdds] / @LayOdds * 100 - 100
WHERE [Fixtures].[MarketSelectionId] = @Umarketiduselectionid

这是我不正确的 C# 语句:

string sql = "Update Fixtures SET Percent = BackOdds / @LayOdds * 100 - 100 WHERE MarketSelectionId = @Umarketiduselectionid";

using (var cmd = new SqlCommand(sql, con))
{
    cmd.Parameters.Add("@LayOdds", SqlDbType.Decimal).Value = layOdds;
    cmd.Parameters.Add("@Umarketiduselectionid", SqlDbType.VarChar).Value = umarketiduselectionid;
    con.Open();
    cmd.ExecuteNonQuery();
}

在关键字“百分比”附近出现不正确的语法。

【问题讨论】:

  • Percent 是保留字。试试[Percent]。
  • 为什么将数值作为字符串传递?
  • 谢谢你,吉姆 - 工作得很好。当我将该列定义为“百分比”时,我有一种感觉,它可能会在沿线的某个地方发生冲突。就像您评论戈登一样发现并编辑。
  • 这里的协议是什么?吉姆,我应该用你的决议来回答它,还是删除这个问题?

标签: c# sql-server ado.net


【解决方案1】:

上面的 Jim Hewitt 友好地提供了答案。非常感谢。

百分比是保留字。试试 [百分比]。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 2013-12-26
    相关资源
    最近更新 更多