si el campo es numerico tendrias que convertirlo (en la consulta, no la columna)
("SELECT * FROM Personas WHERE CONVERT(CHAR,dni) LIKE '" & CInt(txtDNI.Text) & "%'",cn)
("SELECT * FROM Personas WHERE CONVERT(CHAR,dni) LIKE '" & CInt(txtDNI.Text) & "%'",cn)