这是从数据库中获取MAX值(id)然后将6更改为它的正确方法吗?
var photoso = db.QuerySingle("SELECT MAX(Id) FROM Photos");
var toto = photoso - 6;
它告诉我,我不能在WebMatrix.Data.DynamicRecord和Int
之间使用' - '操作符答案 0 :(得分:2)
您的查询应该是
var photoso = db.QueryValue("SELECT MAX(Id) FROM Photos");
var toto = photoso - 6;
中QuerySingle和QueryValue之间的区别
答案 1 :(得分:0)
photoso
会将一组数据返回给您。要获取一个对象,请在Collection中使用其名称。就像使用其索引号访问Array或List中的对象一样。
您的代码为
photoso - 6
WebMatrix.Data.DynamicRecord and Int
尝试使用此代码
var photoso = db.QueryValue("SELECT MAX(Id) FROM Photos");
var toto = (photoso - 6); // get the column Id from the Collection data
这样可行。
以下是Mike Brind的教程:http://www.mikesdotnetting.com/Article/214/How-To-Check-If-A-Query-Returns-Data-In-ASP.NET-Web-Pages
答案 2 :(得分:0)
将鼠标悬停在var
的{{1}}关键字上。
它可能不是int,因此您需要将返回的最大值强制转换为int,然后减去6。
答案 3 :(得分:0)
是的,该查询似乎没问题,但该错误表明存在类型不匹配。
我会尝试从photoso
中提取值,使其为int
,或将photoso
转换为int。尝试使用photoso.Id
或类似属性从photoso查询结果中获取数值。
当然,假设从结果Id中减去6仍然有效,而Id是一个数值。