【发布时间】: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