\documentclass{report}
\usepackage{datatool}
\begin{document}

\DTLnewdb{mydata}
\DTLnewrow{mydata}%
\DTLnewdbentry{mydata}{FirstName}{John}%
\DTLnewdbentry{mydata}{Surname}{Smith, Jr}%
\DTLnewdbentry{mydata}{Score}{68}%
\DTLnewrow{mydata}%
\DTLnewdbentry{mydata}{FirstName}{Jane}%
\DTLnewdbentry{mydata}{Surname}{Brown}%
\DTLnewdbentry{mydata}{Score}{75}%
\DTLnewrow{mydata}%
\DTLnewdbentry{mydata}{FirstName}{Andy}%
\DTLnewdbentry{mydata}{Surname}{Brown}%
\DTLnewdbentry{mydata}{Score}{42}%
\DTLnewrow{mydata}%
\DTLnewdbentry{mydata}{FirstName}{Z\"oe}%
\DTLnewdbentry{mydata}{Score}{52}%
\DTLnewdbentry{mydata}{Surname}{Adams}%


\DTLdisplaydb{mydata}

There is a spurious tabular line at the end:\\
\begin{tabular}{|l|l|r|}%
  \hline%
  \DTLforeach{mydata}{%
    \firstname=FirstName,\surname=Surname,\score=Score}{%
    \firstname & \surname & \score\\\hline}%
\end{tabular}

In a manual tabular, no spurious line at the end:\\
\begin{tabular}{|l|l|r|}
  \hline
  A & B & C\\\hline
  C & D & E\\\hline
\end{tabular}

\end{document}

