Un datatable?
DataTable.Rows.Count > 1 ????

Siete matti!
Che bisogno c'è di tirare fuori tanti record e metterli in un datatable per poi solo contarli?

codice:
dim objConn as sqlconnection, objCmd as sqlcommand, strSql as string

strSql = "select count(*) FROM [tabella] WHERE Data > [DataInizio] AND Data < [DataFine] AND [IDPersona] = IDPersona"

dim num as integer = objCmd.executescalar()
Però Gianluca non ha una data da confrontare con DataInizio e DataFine


Per elencare le persone con delle sovrapposizioni:

codice:
 
select idPersona
from [Tabella] as X
where 0 < (
    select count(*)
    from [Tabella] as Y
    where X.idPersona = Y.idPersona    -- stessa persona
      and Y.idLavoro <> X.idLavoro     -- altro lavoro
      and X.DataInizio <= Y.DataFine   
      and Y.DataFine >= X.DataInizio   
)

-- Tratta tutte le sovrapposiz. possibili

-- X     IN--------FI         
-- Y          IN--------FI    
-- 
-- X          IN--------FI         
-- Y     IN--------FI    
-- 
-- X     IN------------------FI         
-- Y          IN--------FI    
-- 
-- X         IN-----FI         
-- Y     IN--------------FI
Usa questo come base di partenza se vuoi tirare fuori tutte le sovrapposizioni di ogni persona

.