2014-06-21 5 views
0

데이터베이스에서 최대 값 (ID)을 얻은 다음 올바른 값을 얻는 방법입니까?C# 최대 값 가져 오기

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

내가 사용할 수 없습니다 내게 말하고있다 - 당신의 데이터의 컬렉션을 반환 할 것 WebMatrix.Data.DynamicRecord 및 지능

+0

에서 QuerySingle과 QueryValue의 차이에서

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

봐해야합니다. – Adrian

+0

네, 맞습니다. –

+0

그럴 것이다. 그러나 테이블이 비어 있다면 어떤 일이 벌어 질지, Id <6 일 경우 어떻게 될 것인가, 음의 값이 유효한지 등의 경우가있다. –

답변

0

photoso 사이 opperator을 ''. 개체 하나를 가져 오려면 컬렉션에서 해당 개체의 이름을 사용하십시오. 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 

이 작동 할이 코드를 시도입니다. photoso에 대한 var 키워드를 통해 http://www.mikesdotnetting.com/Article/214/How-To-Check-If-A-Query-Returns-Data-In-ASP.NET-Web-Pages

+0

photoso 변수는 단일 스칼라 값이며 'Id'속성을 허용하지 않습니다. 'var toto = (photoso.Id-6);을'var toto = (photoso-6);로 바꾸십시오. – GmG

+0

@GmG, 예, 거의 잊어 버렸습니다. –

0

호버 : 여기

마이크 Brind에 의한에 대한 튜토리얼입니다. 당신이 int로 반환 된 최대 값을 캐스팅 한 후 뺄 필요가 있으므로

그것은 int를하지 않을 수 있습니다 6.

0

예, 그 쿼리는 잘 보이지만, 그 오류는 형식이 일치가 있다고 제안 .

photoso에서 값을 추출하여 int이거나 캐스팅하여 photoso을 int로 사용하려고합니다. photoso 쿼리 결과에서 숫자 값을 가져 오려면 photoso.Id 또는 이와 유사한 속성을 사용해보십시오.

물론 결과 ID에서 6을 빼는 것이 여전히 유효하며 Id는 숫자 값이라고 가정합니다.

관련 문제