[英]Must declare the scalar variable “@ASIN”
我不明白该错误信息。 标量变量意味着什么? @ASIN值应存储在为GetByAsin方法创建的id变量中。
//Gets one Music Detail
public MusicDescriptionModel GetByAsin(string id)
{
using (IDbConnection db = connection)
{
string sql = "select ASIN, Title, Artist, Price, ReleaseDate,NumberDisks,label,DetailPageURL, Review" +
"FROM tblDescription WHERE id = @ASIN";
//need to parameterize ID to avoid sql injection attacks.
MusicDescriptionModel musicdesc = db.Query<MusicDescriptionModel>(sql, new { id }).SingleOrDefault();
return musicdesc;
}
}
您尚未传递用于Dapper绑定到@ASIN的变量。 尝试:
MusicDescriptionModel musicdesc
= db.Query<MusicDescriptionModel>(sql, new { ASIN = id }).SingleOrDefault();
或尝试:
string sql = "select ASIN, Title, Artist, Price, ReleaseDate,NumberDisks,label,DetailPageURL, Review" +
"FROM tblDescription WHERE id = @Id";
您不能使用其他名称,并且期望它为您神奇地排列它们。 他们需要匹配。
string sql = "select ASIN, Title, Artist, Price, ReleaseDate,NumberDisks,label,DetailPageURL, Review" +
"FROM tblDescription WHERE ASIN = @ASINSqlParam";
//need to parameterize ID to avoid sql injection attacks.
MusicDescriptionModel musicdesc = db.Query<MusicDescriptionModel>(sql, new { ASINSqlParam = id }).SingleOrDefault();
应该做到的。
这里的文档可能会有所帮助。
问题出在我的where语句中,我需要使标量变量@id WHERE ASIN = @id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.