C#获取MAX值

时间:2014-06-21 15:11:25

标签: c# webmatrix

这是从数据库中获取MAX值(id)然后将6更改为它的正确方法吗?

var photoso = db.QuerySingle("SELECT MAX(Id) FROM Photos");
var toto = photoso - 6;

它告诉我,我不能在WebMatrix.Data.DynamicRecord和Int

之间使用' - '操作符

4 个答案:

答案 0 :(得分:2)

您的查询应该是

var photoso = db.QueryValue("SELECT MAX(Id) FROM Photos");
var toto = photoso - 6;

查看Database class

中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是一个数值。