2013-04-16 4 views
-1

임 하나의 열에있는 모든 숫자의 합을 계산하려고합니다.한 열에있는 모든 필드의 합

열 이름은 정수로 된 '단위'입니다.

이것은 작동합니까?

cmd3 = New OleDbCommand("SELECT SUM(Units) FROM tblJobs WHERE BookedOut = NULL AND HoldDate = NULL ", con) 

lblLiveUnits.Text = cmd3.ExecuteNonQuery() 

감사합니다

+1

시도해 보셨습니까? – Sajeetharan

+3

ExecuteNonQuery는 결과가 아닌 영향을받는 행의 수를 반환합니다. 쿼리에서 하나의 데이터 항목 만 반환하려는 경우 ExecuteScalar를 사용하십시오. http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar.aspx – GrandMasterFlush

답변

3

조회에서, 당신은 당신이 IS NULL 사용해야 =NULL 뭔가 할 올바른 싶지 않다되지 않습니다

SELECT SUM(Units) As TotalUnits 
FROM tblJobs 
WHERE BookedOut IS NULL 
    AND HoldDate IS NULL 

그런 다음 코드에서 당신이 ExecuteScalar를 사용합니다 :

Int32 lblLiveUnits = 0; 

cmd3 = New OleDbCommand("SELECT SUM(Units) As TotalUnits FROM tblJobs WHERE BookedOut IS NULL AND HoldDate IS NULL ", con); 

lblLiveUnits = cmd3.ExecuteScalar() 
+0

빠른 응답을 보내 주셔서 감사합니다! 새로운 코드와 나는이 오류가 발생 알아. 처리되지 않은 'System.Data.OleDb.OleDbException'형식의 예외가 System.Data.dll에서 발생했습니다. 추가 정보 : 쿼리 식의 구문 오류 (누락 된 연산자)가 'OnHold = 1 AND BookedOut IS NULL'입니다. – mjshort

+0

@ user2286005 두 개의'WHERE'가 잘못 나열되었습니다. 다시 시도하십시오 – Taryn

+0

미안 해요 그건 양이었습니다! 올바른 코드와 함께 지금이 오류가 발생합니까? 추가 정보 : 조건 식의 데이터 형식이 일치하지 않습니다. – mjshort

관련 문제